0

カスタムの戻る/ホームボタンのあるプロジェクトがあり、ユーザーがそれを押すと、次のように呼び出します。

  -(IBAction)backBtnTapped:(id)sender {
    [appDelegate.navController popToRootViewControllerAnimated:YES];
}

これで、viewDidUnloadメソッドが呼び出されなかったことがわかります。なんで?ARCプロジェクトでVC(およびその中のビュー)を強制的にアンロードする方法は?

4

1 に答える 1

1

このメソッドviewDidUnloadは、ビューが画面の外にあるときではなく、メモリ警告がある場合にのみ呼び出されます。これには、おそらく使用するviewDidDisappear:か、viewWillDisappear

viewDidUnloadメソッドの詳細については、次の質問を参照してください。UIViewController viewDidUnloadはいつ呼び出されますか?

したがって、viewDidUnloadが呼び出されるときに気にする必要はなく、必要なことを実行するだけです。また、あなたが世話をする必要があるものの世話をしていること、viewDidDisappear:またはviewWillDisappear

アンロードを強制することは、おそらくそれを処理するための最良の方法ではありません。おそらく、このメソッドに多くのロジックがある場合は、他のメソッドに変更する必要があります。リリースまたはdeallocの呼び出しについて心配する必要はありません。プロジェクトに循環参照がないこと、およびアークが適切に機能するように弱い参照と強い参照を適切に使用していることを確認してください。

お役に立てば幸いです。

于 2012-08-29T14:17:32.070 に答える