これは、問題と私の実装に関する議論であり、問題を引き起こしているようです。
私のアプリには、タブ バーとナビゲーション コントローラーがあります。各タブ内でビューに移動できます。タブ バーは、サブ ビューからクリックして戻るまで非表示になります。
タブごとにナビゲーションコントローラーがあり、これらはアプリデリゲートでアウトレットとして宣言されており、@class tab1navcontroller
典型的な使用法は次のとおりです。
MyAppDelegate *delegate = (MyAppDelegate *)[[UIApplication sharedApplication]
delegate];
[delegate.tab1NavController pushViewController:nextController animated:YES];
過去にこれで多くの問題が発生したことはなく、当時読んでいた本からアプローチをコピーしたと思います。
ただし、数か月前に同僚と話し合ったところ、アプリにはナビゲーション コントローラーを 1 つだけ使用する必要があるとのことでした。
当時、コード (上に示したもの) を置き換えてself.navigationcontroller
代わりに使用しようとしましたが、これにより問題が発生しました。それらが何であったか思い出せませんが、それらの修正は破棄しました。
今日、ビューをプッシュしてすぐにタップするとエラーが発生しました。また、アプリをゾンビ プロファイラーで実行したところ、上記のコードに問題があることがわかりました。
上記のコードがリークを引き起こしている可能性があると思います。
どのアプローチが最適で、ここからどこに行くべきかわかりません。