0

こんにちは、私は自分のアプリでナビゲーション コントローラーをよく使用していますが、スタック上の既存のビューを再利用するのではなく、同じビューを何度も呼び出してナビ コントローラー スタックにプッシュするビューにアプリが悩まされ始めています。

たとえば、アプリのさまざまな場所で呼び出されるマップ ビューがあります。

Nav Controller スタックを実際に調べて、既にプッシュしたマップビューを見つけて、スタックの一番上に移動する必要があります。

代わりに、新しいものを作成して、それを一番上に押し込みます。

私のアプリがより複雑になると、メモリの問題が発生し、ユーザーは戻るボタンを押してメインメニューに戻るのに飽きてしまうでしょう。

Nav Controller スタックでビューを見つける良い例は誰にでもあります。

どうすればいいですか?

App Delegate でマップ ビューへのポインタを保持する必要がありますか?

スタック内でビューをすばやく見つける方法がある場合、またはインデックス/NSDictionary をどこかの場所に保持する必要があります。

Facebook アプリを書いている人は誰でも同じ問題を抱えていることに気付きました。通知が届くと、アプリを開き、通知ビューをインスタンス化してスタックにプッシュします。しばらくすると、古い通知ウィンドウの山全体を閉じて、メイン メニューに戻ります。乾杯

4

1 に答える 1

1

スタックを作成する代わりに、すでにスタックにプッシュしている特定のビューコントローラが必要な場合は、次の方法を使用できます。

- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated

viewControllersがスタックにプッシュされることが事前にわかっている場合は、何度もプッシュする代わりに、以下の関数を使用して一度にプッシュできます。

- (void)setViewControllers:(NSArray *)viewControllers animated:(BOOL)animated
于 2010-11-09T14:08:43.330 に答える