2010-01-06 64 views
1

我嘗試設置兩個不同的視圖爲子視圖,根據SegmentSwitcher的狀態:iPhone:「無法識別的選擇發送到實例」

if ([sender selectedSegmentIndex] == gameIndex) { 
    if (self.gameView.view == nil) { 
     GameView *gameV = [[UIViewController alloc] initWithNibName:@"GameView" bundle:nil]; 
     self.gameView = gameV; 
     [gameV release]; 
    } 
    [tableView.view removeFromSuperview]; 
    [subView insertSubview:gameView.view atIndex:0]; 
} else { 
    if (self.tableView.view == nil) { 
     TableView *tableV = [[UIViewController alloc] initWithNibName:@"TableView" bundle:nil]; 
     self.tableView = tableV; 
     [tableV release]; 
    } 
    [tableView.view removeFromSuperview]; 
    [subView insertSubview:tableView.view atIndex:0]; 
} 

的TableView延伸TableViewController,但我總是得到以下錯誤,當我嘗試切換到實現代碼如下:

2010-01-06 19:55:00.871手球[84675:40B] * - [UIViewController中的tableView:numberOfRowsInSection:]:無法識別的選擇發送到實例0x3b18360 2010-01- 06 19:55:00.873手球[84675:40b] *由於un終止應用捕捉異常'NSInvalidArgumentException',原因:'*** - [UIViewController tableView:numberOfRowsInSection:]:無法識別的選擇器發送到實例0x3b18360' 2010-01-06 19:55:00.874手球[84675:40b]堆棧:(

任何幫助將非常,非常讚賞...

回答

4

雖然tableV被宣佈爲一個TableView,它最有可能用一個簡單的UIViewConrtoller初始化,因爲它出現在你的代碼。嘗試改變行:

TableView *tableV = [[TableView alloc] initWithNibName:@"TableView" bundle:nil]; 

而且TableView應該是UITableViewController一個亞型。

順便說一下,GameView也可能會發生同樣的情況。

+0

有人可以那麼傻...?謝謝你,當然就是這樣......你救了我的一天... – swalkner 2010-01-06 19:12:29

+1

哦,請說控制器而不是控制器,它可以節省很多錯誤= D – 2010-02-14 13:39:54

相關問題