我创建了一个名称为SomeViewController
的NIB,并且所有相应的代码均正确且所有 View 均已正确绑定(bind),但是以某种方式,代码self.presentViewController(SomeViewController(), animated: true, completion: nil)
导致崩溃:
问题是什么?
最佳答案
要解决此问题,我们需要通过执行此操作来进行版本检查
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)