我创建了一个名为SomeViewController
的NIB,并且所有相应的代码都是正确的,并且所有视图都正确绑定,但不知何故代码self.presentViewController(SomeViewController(), animated: true, completion: nil)
导致崩溃:
致命错误:在解包可选值时意外发现nil
有什么问题?
答案 0 :(得分:2)
要解决此问题,我们需要通过执行此操作进行版本检查
if #available(iOS 8, *) {
self.presentViewController(SomeViewController(nibName: "SomeViewController", bundle: nil), animated: true, completion: nil)
} else {
self.presentViewController(SomeViewController(), animated: true, completion: nil)
}
或只是
self.presentViewController(SomeViewController(nibName: "SomeViewController", bundle: nil), animated: true, completion: nil)
由于某些原因,iOS 8并没有自动将nibName包含在初始化中,并且具有相应的类。
更新
也可以通过这样做来解决
class SomeViewController: UIViewController {
init() {
super.init(nibName: "SomeViewController'sNibNameHere", bundle: nil)
}
}
// on some other part of your code
self.presentViewController(SomeViewController(), animated: true, completion: nil)