2010-02-27 69 views
0

我剛剛用行星填充了我的UITableView。我希望每個單元格點擊打開一個新的Xib(如果這聽起來像是錯誤的方法,請直接)。我可以得到第二個控制器工作,它獲得第三個控制器和第四個控制器工作?謝謝。帶有多個viewcontollers的UITableView

+0

你可以發佈你的tableView:didSelectRowAtIndexPath:方法的代碼嗎?如果你能得到第二個視圖控制器的工作,那麼其餘的應該類似地工作。 – chrissr 2010-02-27 22:30:37

+0

查看UINavigationController。它是爲此而設計的。 – 2010-02-27 22:31:38

回答

1

將您的主視圖控制器(帶有表格的控制器)放置在UINavigationController中。然後,當用戶選擇一行時,將一個新的視圖控制器推到它上面。

1

以下功能將有所幫助。正如Ben Gottlieb所說,您的主視圖控制器需要位於UINavigationController中。您需要實現didSelectRowAtIndexPath的委託方法,並且這是您爲新視圖創建新控制器並加載它的位置。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
     YourViewController *controller = [[YourViewController alloc] initWithNibName:@"YourViewController"bundle:nil];   
     [[self navigationController] pushViewController:yourViewController animated:YES]; 
     [yourViewController release]; // don't leak memory 
     } 

根據行號,您可以決定加載哪個nib。

+0

感謝Neilngils和Ben。我玩弄它並添加了一個IF語句,不知道這是否是正確的方法,但它的工作原理。 (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {0} {0} {0} {0} RowCount = [indexPath row];如果(RowCount == 0){\t \t \t EarthViewController * earthViewController = [[EarthViewController alloc] initWithNibName:@「EarthViewController」bundle:nil]; \t \t [[self navigationController] pushViewController:earthViewController animated:YES]; \t \t [earthViewController release]; //不泄漏內存 } \t else if(RowCount == 1){..... – Goods 2010-02-28 02:44:30

相關問題