私は非常に奇妙な問題を抱えているようです。私のアプリには、UITabBar
さまざまなView Controllerを選択できる があります。特定の選択されたタブ項目で、別のビュー コントローラーがスタックにプッシュされ、UINavigationController
ストーリーボード セグエまたはpushViewController
またはのいずれかを使用して のスタックからポップされたpopViewController
場合、別のタブ項目を選択すると、アプリがクラッシュします。私はこれを追跡し、ゾンビオブジェクト、つまり、プッシュされてからポップされたviewcontrollerがあることを発見しました。アプリは明らかにメッセージを送信しようとしています。これがログメッセージです。
*** -[UserInputViewController respondsToSelector:]: message sent to deallocated instance 0xa5f0620
ビューコントローラーがスタックからポップされ、おそらく割り当てが解除された後、ビューコントローラーにアクセスしているコードのどこにも表示されず、タブバーアイテムがクリックされたときに特別な処理を行いません。実際、それは前にクラッシュします
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
とさえ呼ばれています。どういうわけか、タブバーは、このビューコントローラーが割り当てられてスタック上にあるとまだ考えているように見えますが、そうでなければ、なぜメッセージを送信しようとするのでしょうか?
どんな助けでも大歓迎です。