loaded the "XXX" nib b

2016-12-05  本文已影响500人  香蕉你个菠萝

使用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

上一篇下一篇

猜你喜欢

热点阅读