loaded some nib but the view outlet was not set


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

image

 

3. 在 File's Owner 的 image 選項卡的“Custom Class” 屬性設置中,將 Class 的值改成對應的 VC, 這里改成 UIViewController,

image

                    

image

               

4. 這時候,在File's Owner 的  image選項卡中, 就 會出現“待連接設置” 的 view 屬性, 也即我們的編譯器 告訴我們的 the view outlet was not set  中的 view。當 File's Owner 的 class 為 NSObject 時候,是沒有 view 屬性的。

image

 

連接 view 屬性,

image

                

5. win+r, OK.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM