1

UINavigationController をいくつかのビュー コントローラーと共に使用します。でプログラム的に作成されたビュー コントローラの 1 つは、loadview:いくつかのカスタム アニメーションを実行して、前のビュー コントローラからの遷移を行います。

したがって、これらのアニメーションはビューコントローラーがプッシュされたときにのみ発生するはずです。ロードビューは、プッシュ前にビューコントローラーを作成するときに一度だけ呼び出されるため、通常、これはすべて完全に正常に機能します。

ただし、他のビューコントローラーがプッシュされてメモリが不足すると、ビューはシステムによって自動的にアンロードされ、他のビューコントローラーがポップされた後に再び表示される場合は再構築されます。
当然、トランジション アニメーションが発生することは望ましくありません。前のビュー コントローラーのプッシュに従わない場合、かなり奇妙に見えるからです。

おそらく状態情報を保持したり、通知を送信したりして、pushViewController または popViewController が原因で loadview が呼び出されたかどうかを知ることができますが、ビューが最初に構築されたために loadView が発生したかどうかを知る方法が組み込まれているかどうか疑問に思いました時間、または以前にパージされたためですか?

4

1 に答える 1

1

いいえ、UIViewController にそのような組み込みメソッドはありませんが、-(void)viewDidUnload に依存して、ビューが viewDidLoad にアニメーションを表示してはならないことを知ることができます。そうです、それは状態情報を保持することを意味します。

于 2011-04-30T12:57:10.383 に答える