0

私はObjectiveCとiPhoneの開発にまったく慣れていません。TabBarView、TableView、およびプレーンビューの3つのレベルでアプリケーションを作成しようとしています。ユーザーはTabBarViewから開始し、2つのTableViewの1つを選択し、リストされた項目の1つを選択して、その詳細を(プレーンビューで)表示できます。私はこれを助けるためにインターネットの記事で次のコードを見つけました:

- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    Lightbulb *entry = [self.dataController objectInListAtIndex:[indexPath row]];

    DetailsController *dvController = [[DetailsController alloc] initWithNibName:@"DetailsView" bundle:[NSBundle mainBundle]];
    [dvController assignModel:entry];
    [self.navigationController pushViewController:dvController animated:YES];
    [dvController release];

}

LightBulbこれは私が作成したモデルクラスであり、DetailsControllerとDetailsViewはテンプレート化された実装で存在します)。

これはTableViewControllerにあります。それは呼ばれますが、何も達成しません。なぜなのかわかりません。

didSelectRowAtIndexPath新しいビューを表示するには、イベントに応答するために正確に何をする必要がありますか?タブビューを非表示/妨害しない方法でこれを行うにはどうすればよいですか?

4

1 に答える 1

2

タブが 2 つのビュー コントローラーの間で選択していると想定しています。そのView Controllerのナビゲーションコントローラーがないため、機能しません。

各タブが ViewController ではなく UINavigationController をロードする tabBarViewController を持つ構造が必要になります。テーブルビューからの選択を実行するナビゲーション ベースのアプリの基本を学習し、理解したらそのコードをこのプロジェクトに転送することをお勧めします。これはあなたにとって良いものかもしれませんナビゲーションチュートリアル

于 2012-05-11T17:18:41.500 に答える