故事板InstantiateWithIdentifier导致iOS 13崩溃

时间:2019-08-02 10:44:04

标签: uiviewcontroller storyboard xcode11 ios13

Xcode 11(测试版)中针对 iOS-13(测试版)更新测试我的应用程序,当我尝试从情节提要实例化viewController时,我崩溃了。

在以前的版本中,使用以下代码可以正常工作:

XYZController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"IDENTIFIER"];

现在,适用于iOS 13的Apple引入了新方法,即

XYZController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"IDENTIFIER" creator:^__Kindof UIViewController *__Nullable(NSCoder *_Nonnull coder){
    return [XYZController alloc] initWithCoder:coder];
}];

在iOS-13中执行这两种方法都会导致崩溃。当崩溃显示在其他地方时。

这是我的崩溃报告。

  

由于未捕获的异常而终止应用程序   “ NSInternalInconsistencyException”,原因:   ''从-traitCollection返回零   不允许。

1 个答案:

答案 0 :(得分:3)

注意:临时解决方案

我也遇到了这个问题,并且发现了两个临时修复程序。首先是创建需要实例化的控制器的对象/属性,并在控制器的instantiateViewControllerWithIdentifier中创建viewDidLoad。应用程序不会崩溃。

第二个是在dispatch_async(dispatch_get_main_queue())中实例化控制器。这两个技巧都对我有用。

相关问题