使用xib文件进行开发时,报如下错误:
UIViewController _loadViewFromNibNamed:bundle ....but the view outlet was not set.'
经过查找原来是xib文件中View与UIControl中view的关联关系被我删掉了。重新建立xib文件与Control的View的关联即可。
当使用 initWithNibName 函数, 并使用由nib文件生成的ViewController 的view属性时候,遇到这个问题。
//load loc.xib
UIViewController * helloWorldControl = [[UIViewController alloc] initWithNibName:@"HelloWorldView" bundle:nil];
[self.view addSubview:helloWorldControl.view];
[helloWorldControl release];
NibName[2203:207] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "HelloWorldView" nib but the view outlet was not set.'
表面意思是指 我们加载的nib文件,"view" 属性值没有进行设置.
这里的实际情况: 不是所生成的 VC 的view属性值为 nil,而是所生成的 VC 没有 view 这个属性。 我们使用的是UIViewController 定义的VC, 为什么 VC (View Controller) 会没有 view 属性呢?
针对此类问题,给出解决方案:
1, 打开nib文件
2, 点击"File's Owner", 按command+4,设置Class为xxxViewControler。
3, 按Control+"Files's Owner", 里面有个默认的IBOutlet变量view, 看一下后面有没有做关联,如果没有就拉到下面的View和视图做个关联。
参考:http://www.cnblogs.com/TivonStone/archive/2012/04/20/2460116.html