4

アイテムをタップすると詳細ビューに移動するテーブルビューがあります。私がやろうとしているのは、親テーブルビューに戻らずに、詳細ビューから兄弟の詳細ビュー(テーブル内の別のアイテム)に移動することです。

たとえば、テーブルビュー画面に次のタイプに属する料理が多数ある場合:

  • サンドイッチ
  • スープ
  • サラダ

ハムサンドイッチを選ぶと、この料理の詳細ビューに移動します。ここでは、ハムサンドイッチが好きな人はチキンヌードルスープやシーザーサラダも好きだと思います。

テーブルビューに戻らずに、ハムサンドイッチからチキンヌードルスープまたはシーザーサラダの詳細ビューに移動したいと思います。これどうやってするの?

4

1 に答える 1

3

次/前の詳細ビュー(兄弟の詳細ビューと呼びましょう)に移動する場合は、アニメーションフラグをFALSEに設定して新しいコントローラーをポップアンドプッシュするだけです。


- (void)gotoAnotherDetailView
{
    // Just remove the current 
    [self.navigationController popViewControllerAnimated:FALSE];

    // Create a new 
    DetailViewController* newcontroller = [DetailViewController alloc] initWithDishType:anotherDish];
    [self.navigationController pushViewController:newcontroller animated:FALSE];
}

この例では、DetailViewControllerは単なるダミーコントローラーであり、コード内でコントローラーをインスタンス化する方法に置き換える必要があります。

ちなみに、Appleは、コントローラーのプッシュ/ポップを制御するためにデリゲートパターンを使用することをお勧めします。これは、コントローラーがナビゲーションスタックからそれ自体をポップするのではなく、親のテーブルビューコントローラーにメッセージを送信し、そのコントローラーが新しい詳細ビューをポップ&プッシュすることを意味します(1回の呼び出しで)。

于 2012-04-30T13:10:05.687 に答える