presentViewController:在iOS崩溃<6(自动版式)presentView

2019-06-12 06:49发布

这是一个奇怪的崩溃我得到。 当我按下一个按钮,去到一定的ViewController的崩溃发生。 它崩溃上线是:

DestinationInformationViewController *info = [[DestinationInformationViewController alloc] init];
[info setModalTransitionStyle: UIModalTransitionStyleCrossDissolve];
[self presentViewController:info animated:YES completion: nil]; // CRASHES HERE
[info release];

该碰撞痕迹:

*** Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named NSLayoutConstraint' *** First throw call stack: (0x3758288f 0x35287259 0x37582789 0x375827ab 0x3153d54d 0x3153d6bb 0x3153d423 0x314ce001 0x3143c3c7 0x31319c59 0x3128fc17 0x3129a267 0x3129a1d5 0x3133959b 0x31338367 0x84091 0x374dc3fd 0x31271e07 0x31271dc3 0x31271da1 0x31271b11 0x31272449 0x3127092b 0x31270319 0x31256695 0x31255f3b 0x33c9822b 0x37556523 0x375564c5 0x37555313 0x374d84a5 0x374d836d 0x33c97439 0x31284cd5 0x82bb3 0x71200) terminate called throwing an exception(gdb) Could not instantiate class named NSLayoutConstraint

注:此崩溃在我的iPhone 4的iOS 5.1,但不是在我的iPhone 4S的iOS 6测试版2

Answer 1:

我相信这是与Xcode的新界面生成器的问题。 你碰巧使用建立Xcode的4.5的界面构建你的.xib? 我刚才碰到的这个同样的问题,我认为这就是问题所在。 我的应用程序在iOS 6上运行,但没有什么老。

你需要确保你关闭Use Auto Layout为您xibs。

这可以这样做:

  1. 打开厦门国际银行。
  2. 转至File Inspector选项卡。
  3. 找到Interface Builder Document右侧工具栏上的部分。
  4. 取消对Use Auto Layout选项。


Answer 2:

我有同样的问题,当我下载了新的XCode更新和iOS6的SDK。 下面是我如何解决它:

选择界面生成文件(厦门国际银行或故事板文件是否)在那里发生的错误。 在Xcode中右助理编辑,选择从左边的第一个选项卡,并且对于选项“使用自动布局”复选框像上面的截图。 取消选中该复选框。



Answer 3:

纳加拉贾问“如果我们不使用厦门国际银行来解决一样吗?我跑进正是这个问题。我创建了一个控制器,一个厦门国际银行,然后我决定删除厦门国际银行文件的崩溃并没有消失,但问题是我需要实现

- (void) loadView

在我的控制器类。 一旦我实现了这个方法的问题得到有效解决。



Answer 4:

另一个可能的原因与presentViewController崩溃是具有连接到一个变量已经不存在的东西笔尖 - 变量要么有它的名称更改或已被删除。



文章来源: presentViewController: crash on iOS <6 (AutoLayout)