0

ウィンドウのルート ビューとして uitabbarcontroller を設定しました。タブバーのタブの 1 つが uitableviewcontroller のサブクラスに設定されています。私がやろうとしているのは、行の1つが触れられたときに詳細ビューを表示することですので、実装しました

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

if (!detailViewController) {        
detailViewController = [[ItemDetailViewController alloc] init]; 

}   
[detailViewController setEditingArray:   
[list objectAtIndex:[indexPath row]]];  
[[self navigationController] pushViewController:detailViewController animated:YES];

}

テーブルコントローラーで行を選択すると、詳細ビ​​ューが表示されません。関数が起動するかどうかを確認するために nslog を追加しましたが、詳細ビューはまだ表示されません。何か案は?ありがとう。

4

2 に答える 2

1

ナビゲーション コントローラーがありません ([self navigationController]が返されnilます)。テーブル ビュー コントローラーをタブのルートにする代わりに、タブのルートをテーブル ビュー コントローラーを含むナビゲーション コントローラーにします。これで、テーブル ビュー コントローラーから詳細コントローラーをプッシュできるようになります。

于 2012-12-16T02:06:55.500 に答える
1

はのtableViewController中に配置する必要がありますNavigationControllertableViewタブバー内に作成したと思います。

TableViewControllerSubclass* table = [[TableViewControllerSubclass alloc] init];

UINavigationController* tableNav = [[UINavigationController alloc] initWithRootViewController:table];

mainController = [[UITabBarController alloc] init];
mainController.viewControllers = [NSArray arrayWithObjects:tableNav,..., nil];
于 2012-12-16T03:26:04.110 に答える