ios - 从 UITabBarController 呈现 ViewController 标签

标签 ios swift uitabbarcontroller viewcontroller

我是使用 swift 编写 IOS 应用程序的新手。 我已经使用代码在 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 中添加了一个 Label

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 :在展开可选值时意外发现 nil”错误。 如果我删除“Label.backgroundColor”代码并在属性检查器中设置背景颜色,Build App 将不会显示标签。

我错过了什么代码? 提前致谢!

最佳答案

如果它在 testLabel.backgroundColor = UIColor.blackColor() 中给您“nil while unwrapping an optional value”,则可能是您的标签未连接到 Interface Builder 中的控件。在编辑器中,IBOutlets 的声明旁边有一个小圆圈。空一个表示未连接,圆圈内有一个点表示已连接。

如果您仍处于应用开发的初期阶段,请考虑在 Interface Builder/Storyboard 中执行 UITabBarController 管道。每次添加新选项卡时,它都会让您免于一些无聊的工作。

关于ios - 从 UITabBarController 呈现 ViewController 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33984505/

相关文章:

ios - 使用类中的项目填充 UIPickerView

ios - SceneKit 中的背面剔除

ios - swift 4 : JsonSerialization of object with optional values fails

iphone - 如何覆盖选项卡栏的更多 Controller ?

ios - 导航栏和 AVCaptureSession

ios - 如何找出奇怪的 iOS 应用程序崩溃的原因

iOS : How to add Underline in UITabBarItem

swift - 选项卡栏项目显示带有模式转场的 View Controller

ios - 通过蓝牙将音频从麦克风流式传输到另一部 iPhone

iphone - 如何确定 UITapGestureRecognizer 触摸了哪个 View ?