16

私はレガシー アプリケーションで作業しており、view[Will/Did]Disappearメソッドが常に適切に起動されるとは限らないことがわかりました。

場合によっては、AppDelegate で (カスタム)UIViewControllerを rootViewController として設定しています。この rootViewController には、UINavigationController2 つのビュー コントローラーがプッシュされた があります。ユーザーがホームボタンを押すと、ユーザーはログアウトされます。後でアプリに戻ると、アプリケーションが呼び出され、ログイン用[UINavigationController popToRootViewControllerAnimated:YES]のモーダルが表示されます。UIViewController

UINavigationController問題は次のとおりです。通常どおりにプッシュ/ポップすると、viewWillDisappearメソッドが適切に呼び出されます。しかし、popToRootViewControllerAnimated:メソッドを使用するviewWillDisappearと、ポップされたviewControllerのいずれでも呼び出されません。

インターネットで検索しても、考えられる理由は 2 つしかありません。

私のアプリでは、これらの提案はどれも当てはまりません。そしてどこを見ればいいのかわからない。アプリで何が間違っていたのか、誰か提案がありますか?

4

2 に答える 2

23

ビューはおそらく画面上にありませんでした。viewWillDisappear:メソッドが呼び出されるには、画面上にある (表示されている) 必要があります。バックグラウンドから戻ってくる場合は、表示されませんでした。

willMoveToParentViewController:View Controllerが親から削除されたときに呼び出される which を使用してみてください。

于 2013-07-30T18:19:03.550 に答える