2010-11-29 9 views
1

私はユーザーが階層を掘り下げることを可能にするナビゲーションベースのアプリケーションを持っています。子階層の中には、代わりに、ユーザータップ「Level3a」を作ることを、例えば、それらにナビゲーション階層を自動的にドリルダウンしますか?

TopLevel1----->Level2a 
TopLevel2 |->Level2b----->Level3a----->Level4a 
      |->Level2c  

を一つだけの要素を持って、私はちょうどそうLevel4aにLevel2bからジャンプしますが、スタック内Level3aビューを維持したいですユーザーがバックトラックしたときに表示されます。

Iは、行タップをシミュレートするために、ここでいくつかのコードを発見した:各レベルが読み込まれると

Simulate a Detail Disclosure Button press

、私はそれだけで一つの要素が存在するかどうかを確認。もしそうなら、私は行タップをシミュレートします。これはすべて最初は機能し、最終的なビューが読み込まれます。しかし、私がビュー階層を逆戻りし始めると、問題が発生します(スキップされたビューがロードされていないように見えます)。

私が達成しようとしていることはかなりシンプルなので、ここにいる誰かが私に正しい方向を向けることを願っています。

答えて

0

level3ビューコントローラのviewWillAppearメソッドで[self.navigationController pushViewController:level4 animated:NO]コールを発信できるはずです。これにより自動的にレベル3の上にレベル4が押し込まれます。

level3には、この動作がいつ発生するかを示すプロパティがあります。

+0

おかげで、コードサンプルですが、それは私に同じ結果を与えます。実際には、アニメーションを使用して:NOは私に非常に奇妙な結果をもたらします。アニメーションに変更した場合:YES、私はシミュレートされた行タップコードを使用した場合と同じ結果になります。何が起こっているのかを調べるために私のコードを掘り下げています。 – smacdonald

0

私は100%働いているとは思っていませんが、それは私がやることです。

あなたは可能性があり、直接[self.navigationController pushViewController:level4a animated:NO]とそれが終了したとき、viewControllersの新しい配列、navigationController適否(Level3aを含み、アレイ)を設定します。ここで

はあなた didSelectRowAtIndexPath:

[self.navigationController pushViewController:level4a animated:NO]; //Push the level 4 first 
NSMutableArray* mutableViewControllers = [self.navigationController.viewControllers mutableCopy]; 
[mutableViewController addObject:level3a atIndex:3]; //Add the level 3 manually 
self.navigationController.viewControllers = mutableViewControllers; 
[mutableViewControllers release]; 
関連する問題