首页 文章

从iOS7中的loadView()引用的@IBOutlet的Swift展开错误,但在iOS8中有效

提问于
浏览
-1

我在我的UIViewController中声明了这个插座并链接到故事板:

@IBOutlet var pennyView: UIView!

我正在loadView中加载一个PageView控制器并在按钮上设置一个选项:

override func loadView() {
    super.loadView()

    //Add PageViewController
    pageViewController = UIPageViewController(transitionStyle: UIPageViewControllerTransitionStyle.Scroll, navigationOrientation:
        UIPageViewControllerNavigationOrientation.Horizontal, options: nil)
    let child = viewControllerAtIndex(0)
    pageViewController!.setViewControllers([child!], direction: UIPageViewControllerNavigationDirection.Forward, animated: false, completion: nil)
    pageViewController!.dataSource = self
    self.addChildViewController(pageViewController!)
    self.view.addSubview(pageViewController!.view)

    //Add Buttom
    button.backgroundColor = UIColor.LightPurple(1)

    let pageViewcontrollerView = pageViewController!.view
    pageViewcontrollerView.setTranslatesAutoresizingMaskIntoConstraints(false)
    self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|[pageViewcontrollerView][button]", options: nil, metrics: nil, views: ["pageViewcontrollerView":pageViewcontrollerView, "button":button]))
    self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|[pageViewcontrollerView]|", options: nil, metrics: nil, views: ["pageViewcontrollerView":pageViewcontrollerView, "button":button]))

}

这一切都在iOS8模拟器中花花公子 . 但是在iOS7.1上运行时,我得到一个 "fatal error: unexpectedly found nil while unwrapping an Optional value" 引用此调用

button.backgroundColor = UIColor.LightPurple(1)

是什么赋予了?

1 回答

  • 1

    iOS 7.1和iOS 8.0之间最棘手问题的解决方案非常简单:

    iOS模拟器>重置内容和设置

    它现在完美运行,没有任何其他变化 . 疯狂 .

相关问题