【问题标题】:storyboard instantiating view controllers, crashes故事板实例化视图控制器,崩溃
【发布时间】:2012-06-10 05:21:23
【问题描述】:

我在 iOS5 中创建了一个带有故事板的项目。我将 UIViewController 拖到画布上,设置标识符和自定义类。当我尝试使用此方法时,代码在此行崩溃。我想不通,为什么?

[self.storyboard instantiateViewControllerWithIdentifier:@"Contacts"];

【问题讨论】:

  • 当它崩溃时你得到什么错误信息?另外,你把这行代码放在哪里了?
  • sigabrt,我把这行放在按钮操作方法中,
  • @zahreelay 如果你写了完整的错误我们可以知道发生了什么,你可以在下半部分看到它。特别是因为它是一个 sigabrt,这是一个非常描述性的错误,告诉你你做错了什么。
  • 它什么也没说,我得到了 SIGABRT 并且它崩溃了。
  • downvotes 没有帮助,如果您理解问题,请帮助,否则不要只是来投反对票

标签: ios ios5 uistoryboard


【解决方案1】:

唯一标识视图控制器的标识符字符串 故事板文件。您为给定视图设置标识符 配置故事板文件时在 Interface Builder 中的控制器。 此标识符不是视图控制器对象本身的属性 并且仅由情节提要文件用于定位视图控制器。

如果指定的标识符在故事板文件中不存在(或为零),则此方法引发异常。

你确定标识符是一样的吗?

编辑:

执行此操作的结构应该是这样的

UIViewController *temp = [[self storyboard] instantiateViewControllerWithIdentifier:@"ImagePickerViewController"];

[self presentModalViewController:temp animated:YES];

对于情节提要上的视图控制器,在显示属性检查器 -> 视图控制器 -> 标识符 -> "ImagePickerViewController" 下

【讨论】:

  • 其实你为什么要使用这种方法?你的故事板中是否有一个 vc 可以展示另一个?
  • 是的,我在按钮操作方法中使用该行,在实例化视图控制器后,我必须将其作为子视图添加到另一个视图控制器。
  • 我们是否必须从情节提要中进行任何其他设置,以使标识符不为零?
  • 否,但为了确保这行是导致问题的行,请在此行前后添加断点。
  • 我已经这样做了,这就是为什么我告诉它在这条线上崩溃
猜你喜欢
  • 2013-07-13
  • 1970-01-01
  • 2021-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-18
  • 1970-01-01
相关资源
最近更新 更多