在iOS 8上呈现NIB模态崩溃,但在iOS 9 上却没有



我创建了一个具有SomeViewController名称的NIB,所有相应的代码都正确,所有视图都正确绑定,但是以某种方式代码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)

由于某种原因

更新:

也可以通过这样做

来修复
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)

相关内容

最新更新