打开我的xib文件时显示错误

时间:2013-05-10 12:46:37

标签: ios uiviewcontroller uinavigationcontroller xib

当我点击tableview行

时,使用以下代码打开xib
ViewController *List=[[ViewController alloc]initWithNibName:@"ViewController" bundle:nil];
      [self.navigationController pushViewController:List animated:YES];

并且我得到了这个例外

    Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named NSLayoutConstraint'
*** First throw call stack:
(0x245e052 0x1731d0a 0x2406a78 0x24069e9 0xbbe7d7 0xbbe9af 0xbbe6b7 0xabf36d 0x966e2c 0x9673a9 0x9675cb 0x967941 0x97947d 0x97966f 0x97993b 0x97a3df 0x97a986 0x97a5a4 0x41b08 0x93171d 0x931952 0x11b986d 0x2432966 0x2432407 0x23957c0 0x2394db4 0x2394ccb 0x391a879 0x391a93e 0x8a1a9b 0x28dd 0x2805)
terminate called throwing an exception(lldb) 

2 个答案:

答案 0 :(得分:1)

这是因为您正在使用默认使用“自动布局”的Xcode 4.5+(或之前的测试版)。自动布局仅适用于iOS 6,因此您将在之前的iOS版本中收到运行时错误。

您可以通过打开故事板,打开“工具”窗格并禁用第一个标签/部分中的“使用Autolayout”复选框来解决此问题:

enter image description here

对于常规非故事板笔尖,请选择顶级视图以访问此选项。

答案 1 :(得分:0)

您使用自动布局在IB中设计了视图,但是您尝试在ios5设备或模拟器上运行代码?

编辑:对,iOS5中不存在该类!如果您希望此应用程序在iOS5中运行,则需要将xib从AutoLayout转换回spring和struts。在右侧检查器视图中,每个XIB都有一个复选框,用于执行此操作。