Ios “错误”;加载“文件”;XXXX“;nib,但未设置视图出口;,不使用界面生成器时
我在控制台上获得此日志: *由于未捕获的异常“NSInternalInconsistencyException”,正在终止应用程序,原因:'-[UIViewController _loadViewFromNibNamed:bundle:]加载了“AboutView”nib,但未设置视图出口 …当我用根视图控制器(属于类Ios “错误”;加载“文件”;XXXX“;nib,但未设置视图出口;,不使用界面生成器时,ios,simulator,Ios,Simulator,我在控制台上获得此日志: *由于未捕获的异常“NSInternalInconsistencyException”,正在终止应用程序,原因:'-[UIViewController _loadViewFromNibNamed:bundle:]加载了“AboutView”nib,但未设置视图出口 …当我用根视图控制器(属于类AboutViewController)实例化自定义UINavigationController子类并尝试以模式显示它时 我确实有一个关于viewcontroller的,但它是通过
AboutViewController
)实例化自定义UINavigationController子类并尝试以模式显示它时
我确实有一个关于viewcontroller的,但它是通过编程创建视图的。没有关于视图的类或相关的xib文件。事实上,整个项目中没有一个nib/xib文件
这个问题我在这里已经被问过好几次了,但都是由使用Interface Builder的人提出的(不是我的情况,因此没有适用的解决方案)
注意:这仅在5.0模拟器中发生;6.0模拟器,运行5.0.1、6.0的设备没有问题
发生了什么?如何创建视图?您应该在AboutViewController
的loadView
方法中创建视图。您必须将创建的视图设置为self.view=someView
我甚至不重写-loadView
。只需-viewDidLoad
(到布局子视图)。因此,应该调用-loadView
的默认实现。(否-initWithNib…
等)问题是没有视图,必须通过loadView.No中的NIB加载视图。每当引用视图
属性时,就会调用UIViewController
上的-loadView
实现(超类),该属性为nil
(尚未创建)。如果您没有做任何花哨的事情,可以选择不覆盖-loadView
。此外,您不直接调用-loadView
,而只是访问视图控制器的视图
属性来触发该操作。嗯,是的,文档似乎对此并不清楚。我一直在基于非NIB的ViewController上实现它。但是,正如文档所述,它应该只创建一个空视图。我的猜测是这个模拟器有点奇怪。