美文网首页
loaded the "XXX" nib b

loaded the "XXX" nib b

作者: 香蕉你个菠萝 | 来源:发表于2016-12-05 11:51 被阅读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

    相关文章

      网友评论

          本文标题:loaded the "XXX" nib b

          本文链接:https://www.haomeiwen.com/subject/vtvkmttx.html