关于[UIViewController _loadViewFromNibNamed:bundle:] 错误的原因

来源:互联网 发布:java中高级面试题大全 编辑:程序博客网 时间:2024/06/04 18:11

这几天碰到一个崩溃问题,加载ModifyViewController视图控制器的时候 ,log打印出

[UIViewController _loadViewFromNibNamed:bundle:] ,loaded the "ModifyView" nib but the view outlet was not set .

 但是我在此处并没使用Xib进行加载,而是用的[ [ModifyViewController alloc] init ] 。 后来在工程项目的别处发现有个视图的名字叫做ModifyView以及与它相关的ModifyView.xib,于是在 ModifyView的initWithCoder构造器里面下断点, 发现执行[ [ModifyViewController alloc] init ]  的时候 居然进了这个断点, 于是查看了一下堆栈信息,大概是[ [ModifyViewController alloc] init ] 会调用loadView函数,loadView会根据类名ModifyViewController先查找去掉Controller这个后缀的xib文件,也就是ModifyView.xib, 如果找到了 用这个xib初始化视图,改下名字,再运行就没问题了。

所以在命名类的时候如果用了XXXController这样的类,  就不能再命名一个XXX.xib这样的类了,当然可以改写XXXController的 nibName属性, 这样应该也能解决问题。

2 0