呈现来自 UITabBarController 的 ViewController 标签
presenting ViewController Label from UITabBarController
我是 IOS 应用 swift 编程新手。
我用代码在 AppDelegate.swift 中编写了 TabBar,在 MainPageViewController.swift 和 DetailViewController.swift 中编写了 2 个 ViewControllers 程序。
let tabBarController = UITabBarController()
let mainPageVC = MainPageViewController()
let detailVC = DetailViewController()
tabBarController.viewControllers = [mainPageVC,detailVC]
let mainTabBar = UITabBarItem(title: nil, image: UIImage(named: "03")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal), selectedImage: UIImage(named: "06")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal))
let detailTabBar = UITabBarItem(title: nil, image: UIImage(named: "02")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal), selectedImage: UIImage(named: "05")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal))
mainPageVC.tabBarItem = mainTabBar
deviceVC.tabBarItem = deviceTabBar
mainPageVC.tabBarItem.imageInsets = UIEdgeInsets(top: 5, left: 0, bottom: -5, right: 0)
deviceVC.tabBarItem.imageInsets = UIEdgeInsets(top: 5, left: 0, bottom: -5, right: 0)
UITabBar.appearance().barTintColor = UIColor(red: 211/255, green: 1, blue: 246/255, alpha: 1)
window = UIWindow(frame: UIScreen.mainScreen().bounds)
self.window?.rootViewController = tabBarController
self.window?.makeKeyAndVisible()
然后我在 MainPageViewController.swift
中添加了一个标签
class MainPageViewController: UIViewController {
@IBOutlet weak var testLabel: UILabel!
@IBOutlet weak var mainTabBarItem: UITabBarItem!
override func viewDidLoad() {
super.viewDidLoad()
let backgraondLayer = color.gl
backgraondLayer.frame = view.frame
self.view.layer.insertSublayer(backgraondLayer, atIndex: 0)
testLabel.backgroundColor = UIColor.blackColor()
}
我一直收到 "fatal error: unexpectedly found nil while unwrapping an Optional value" 错误。
如果我删除 "Label.backgroundColor" 代码并在属性检查器中设置背景颜色,构建应用程序将不会显示标签。
我错过了什么代码?
提前致谢!
如果它在 testLabel.backgroundColor = UIColor.blackColor()
中给你 "nil while unwrapping an optional value",很可能你的标签没有连接到 Interface Builder 中的控件。在编辑器中,IBOutlets 的声明旁边有一个小圆圈。空一个表示未连接,圆圈内有一个点表示已连接。
如果您仍处于应用开发的初期,请考虑在界面 Builder/Storyboard 中执行 UITabBarController 管道。每次添加新选项卡时,它都会让您免于一些无聊的工作。
我是 IOS 应用 swift 编程新手。 我用代码在 AppDelegate.swift 中编写了 TabBar,在 MainPageViewController.swift 和 DetailViewController.swift 中编写了 2 个 ViewControllers 程序。
let tabBarController = UITabBarController()
let mainPageVC = MainPageViewController()
let detailVC = DetailViewController()
tabBarController.viewControllers = [mainPageVC,detailVC]
let mainTabBar = UITabBarItem(title: nil, image: UIImage(named: "03")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal), selectedImage: UIImage(named: "06")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal))
let detailTabBar = UITabBarItem(title: nil, image: UIImage(named: "02")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal), selectedImage: UIImage(named: "05")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal))
mainPageVC.tabBarItem = mainTabBar
deviceVC.tabBarItem = deviceTabBar
mainPageVC.tabBarItem.imageInsets = UIEdgeInsets(top: 5, left: 0, bottom: -5, right: 0)
deviceVC.tabBarItem.imageInsets = UIEdgeInsets(top: 5, left: 0, bottom: -5, right: 0)
UITabBar.appearance().barTintColor = UIColor(red: 211/255, green: 1, blue: 246/255, alpha: 1)
window = UIWindow(frame: UIScreen.mainScreen().bounds)
self.window?.rootViewController = tabBarController
self.window?.makeKeyAndVisible()
然后我在 MainPageViewController.swift
中添加了一个标签class MainPageViewController: UIViewController {
@IBOutlet weak var testLabel: UILabel!
@IBOutlet weak var mainTabBarItem: UITabBarItem!
override func viewDidLoad() {
super.viewDidLoad()
let backgraondLayer = color.gl
backgraondLayer.frame = view.frame
self.view.layer.insertSublayer(backgraondLayer, atIndex: 0)
testLabel.backgroundColor = UIColor.blackColor()
}
我一直收到 "fatal error: unexpectedly found nil while unwrapping an Optional value" 错误。 如果我删除 "Label.backgroundColor" 代码并在属性检查器中设置背景颜色,构建应用程序将不会显示标签。
我错过了什么代码? 提前致谢!
如果它在 testLabel.backgroundColor = UIColor.blackColor()
中给你 "nil while unwrapping an optional value",很可能你的标签没有连接到 Interface Builder 中的控件。在编辑器中,IBOutlets 的声明旁边有一个小圆圈。空一个表示未连接,圆圈内有一个点表示已连接。
如果您仍处于应用开发的初期,请考虑在界面 Builder/Storyboard 中执行 UITabBarController 管道。每次添加新选项卡时,它都会让您免于一些无聊的工作。