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

关于'-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "XXXView" nib but the view outlet was not set.'这个bug的原因

此种bug分为两种情况:

一:当你这个控制器的view是通过xib加载的,但是在xib里面并没有绑定file's Owner,或者绑定了file's Owner,但是没用对file's Owner里面的view属性进行连线

解决情况:第一步:

:

第二步:

二:第二种出bug的原因可能很多人都会忽略,当你的控制器的文件名称跟你用xib描述的一个view的名称很像,就是少了一个controller,此时也会在运行的时候崩掉

例如

:

首先来分析:PPVideoViewController并没用用xib去描述,但是如果在同一个工程文件中,出现了跟控制器文件名相同但是少了controller的文件名,恰恰自定义的PPViedeoView是用xib去描述的,

bug:那么问题就来了:当另一个控制器想使用PPVideoViewController的view的时候,那这个时候运行的时候就会报跟上面同样的错

原因:因为创建一个控制器我们一般都是PPVideoViewController *vc = [PPVideoViewController alloc] init]; init内部首先会去找有没有跟PPVideoViewController相同的xib文件名,如果没有再去找有没有跟PPVideoViewController但是少了Controller的xib文件名,如果有就去加载这个xib! 这里一加载就会报错,因为PPVideoView.xib并不是用来描述PPVideoViewController控制器view的

而是用来描述自定义的PPVideoView的,因此就会在运行的时候报错

你可能感兴趣的:([UIViewController _loadViewFromNibNamed:bundle:] loaded the "XXXView" nib but the view outlet was not set.')