loaded some nib but the view outlet was not set

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了loaded some nib but the view outlet was not set相关的知识,希望对你有一定的参考价值。

链接地址:http://www.cnblogs.com/TivonStone/archive/2012/04/20/2460116.html

当使用 initWithNibName 函数, 并使用 由nib文件生成的ViewController 的view属性时候,遇到这个问题。

//load loc.xib

UIViewController * UIVC = [[UIViewController alloc] initWithNibName:@"loc" bundle:nil];

    [self.view addSubview:UIVC.view];

    [UIVC release];

NibName[2203:207] *** Terminating app due to uncaught exception ‘NSInternalInconsistencyException‘, reason: ‘-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "loc" nib but the view outlet was not set.‘

表面意思是指 我们加载的nib文件,"view" 属性值没有进行设置.

这里的实际情况: 不是所生成的 VC 的view属性值为 nil,  而是所生成的 VC 没有 view 这个属性。 我们使用的是UIViewController 定义的VC, 为什么 VC (View Controller) 会没有 view 属性呢? 

(多么具有逻辑性的表述都不如一次成功的完整操作,begin :)

解决方案:

1. 点击我们要加载的 xib 文件

 

2. 在右边选中 File‘s Owner

技术分享

 

3. 在 File‘s Owner 的 技术分享 选项卡的“Custom Class” 属性设置中,将 Class 的值改成对应的 VC, 这里改成 UIViewController,

技术分享

                    

技术分享

               

4. 这时候,在File‘s Owner 的  技术分享选项卡中, 就 会出现“待连接设置” 的 view 属性, 也即我们的编译器 告诉我们的 the view outlet was not set  中的 view。当 File‘s Owner 的 class 为 NSObject 时候,是没有 view 属性的。

技术分享

 

连接 view 属性,

技术分享

                

5. win+r, OK.

以上是关于loaded some nib but the view outlet was not set的主要内容,如果未能解决你的问题,请参考以下文章

loaded the "XXXView" nib but the view outlet was not set 解决方案

问题:-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "BlueView" nib but the vie

-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "RootViewController" nib but

System.Security.SecurityException The source was not found, but some or all event logs could not be

Specified 'postgresql' for database adapter, but the gem is not loaded.

Gem::LoadError: Specified 'sqlite3' for database adapter, but the gem is not loaded