次/前の詳細ビュー(兄弟の詳細ビューと呼びましょう)に移動する場合は、アニメーションフラグを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回の呼び出しで)。