3

在基於導航的應用程序,當我試圖加載已得到使用initWithNibName實現UITableView另一種觀點認爲:點擊UITableView細胞後問題與裝載的UITableView導航爲基礎的應用程序

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    UIViewController *detailsViewController = [[UIViewController alloc] initWithNibName:@"bloop2ViewController" bundle:nil]; 
    [[self navigationController] pushViewController:detailsViewController animated:YES]; 
    [detailsViewController release]; 
} 

我得到:

2009-06-13 11:44:41.089 Bloop[75227:20b] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIViewController 0xd446f0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key tableView.' 2009-06-13 11:44:41.092 Bloop[75227:20b] Stack: (
807902715, 2429103675, 808061681, 810717848, 810716389, 816538544, 807805711, 816533170, 816541363, 815230552, 815224116, 815223834, 815217291, 815258907, 815254969, 815262662, 815243017, 815265053, 815242666, 11044, 815018240, 815005661, 810768858, 807687328, 807683624, 839142449, 839142646, 814752238, 9088, 8942 )

但是,當我在InterfaceBuilder中斷開UITableView時,視圖加載沒有任何問題(除了沒有辦法將數據推入它)。

UITableView的實現是正確的 - 我嘗試了一個新的XCode項目,它工作得很好。

回答

6

錯誤消息表明您正嘗試在UIViewController類型的對象上設置屬性「tableView」,但它沒有。我只是猜測,但也許你有你的nib文件中的派生視圖控制器,它具有屬性tableView,但是然後你不構造你的派生對象,而是一個UIViewController。你應該嘗試:

MyTableViewController *detailsViewController = [[MyTableViewController alloc] initWithNibName:@"bloop2ViewController" bundle:nil]; 
+0

就像一個魅力......我花了整整一天的跟蹤下來,我認真欠你:) 再次感謝,並保重! – 2009-06-13 13:49:15

0

我得到這個問題和修復是爲了確保兩個

  1. 我在主窗口廈門國際銀行在標籤欄下方的視圖控制器設置的NIB名,
  2. 在子視圖控制器中設置了類名稱。

This頁面對我很有幫助。

0

我剛剛經歷過這個問題。在我的情況下,原因是MyTableViewController的實現代碼被排除在當前的構建配置之外。希望能幫助別人。

0

另一種方式可以咬你。我已經拋出了xib的視圖,並開始了。無論我做了什麼,視圖都會在加載時拋出異常。將頭髮拉出幾個小時後,我終於從模擬器中刪除了該應用程序,並將其修復。不知怎的,舊的xib在安裝時沒有被替換。

0

這個我忘了

2小時後
@synthesize tableView = _tableView; 

希望它可以幫助

馬里奧

相關問題