簡體   English   中英

iPhone-當視圖映射正確時,為什么會出現此錯誤?

[英]iPhone - Why am I getting this error when the view mapping is correct?

我的iPhone應用程序運行良好。 我在xib文件中添加了一個組件(活動指示器)。 我已經創建了自己的init方法,並且在init方法中使用了XIB名稱。 現在當我執行pushViewController時收到此錯誤

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "ModelThumbnailView" nib but the view outlet was not set.'

我知道,當viewcontroller未映射到xib中的視圖時,通常會出現這種情況。 但是所有映射都可以。 我什至刪除了類和xib並再次創建了它們。 init方法也不返回nil。 但是,只要使用此類的對象調用pushViewController,我仍然會收到異常。

有什么想法嗎?

編輯

只是調試並在調用pushViewController之前在viewcontroller中調用了一個方法。 調試器顯示nib名稱設置正確,捆綁包為nil(正在傳遞的內容),但視圖也為nil。 不知道為什么!

**發布代碼以防萬一**

MyThumbnailViewController *modCont = [[[MyThumbnailViewController alloc] initWithNibName:@"MyThumbnailView" bundle:nil] autorelease];
[modCont setImgName:imgName count:numOfValues andIndex:0];

[[self navigationController] pushViewController:modCont animated:YES]; //This gives the exception

這是MyThumbnailViewController類的viewDidLoad。 控制永遠不會到達這里

- (void)viewDidLoad {
    self.navigationItem.title = imageName;
    self.navigationItem.hidesBackButton = NO;
    [[self navigationController] setNavigationBarHidden:NO];
}

我刪除了自定義init方法,但仍然收到相同的錯誤。

解決了

只是重新創建了整個東西,現在它可以正常工作,盡管我看不到兩者都有任何不同!

我確定您已經嘗試過此方法,但是以防萬一您是否在調用方法處理您的pushView之前在該位置設置斷點,並逐步執行代碼以查看在哪里引發了異常。 這有時會有所幫助。 稍后我會再檢查以查看您的發現,並查看是否可以提供更多幫助。

聽起來很奇怪,但是為了安全起見,可能再次仔細檢查以下內容:打開IB並選擇“文件所有者”。 然后,在Identity Inspector中,確保將Class設置為您的自定義View Controller。 打開連接檢查器,並確保視圖插座已連接到NIB中的視圖(這是異常所抱怨的)。

保存XIB文件並關閉IB。 然后在XCode中選擇Build-> Clean All Targets並嘗試運行您的應用程序。

我已經看到IB和XCode不止一次地分開,我熱切地在IB中編輯視圖,因為我沒有將它們偶然添加到我的項目中,所以我的應用程序永遠不會加載。 所以我可以感覺到你的痛苦:-)

我遇到了同樣的錯誤-到處亂逛之后,我將VIEW OUTLET(在文件所有者中)重新連接到VIEW CONTROLLER中的VIEW(我剛剛連接到VIEW屏幕的主要部分),很抱歉,我是所有這一切的新手,所以我確定並沒有用正確的名稱來稱呼這些東西),並加以解決。 它以前曾經起作用過,但是我做的某些事情一定破壞了該鏈接。

霧之城

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM