1

私は非常に奇妙な問題を抱えているようです。私のアプリには、UITabBarさまざまなView Controllerを選択できる があります。特定の選択されたタブ項目で、別のビュー コントローラーがスタックにプッシュされ、UINavigationControllerストーリーボード セグエまたはpushViewControllerまたはのいずれかを使用して のスタックからポップされたpopViewController場合、別のタブ項目を選択すると、アプリがクラッシュします。私はこれを追跡し、ゾンビオブジェクト、つまり、プッシュされてからポップされたviewcontrollerがあることを発見しました。アプリは明らかにメッセージを送信しようとしています。これがログメッセージです。

*** -[UserInputViewController respondsToSelector:]: message sent to deallocated instance 0xa5f0620

ビューコントローラーがスタックからポップされ、おそらく割り当てが解除された後、ビューコントローラーにアクセスしているコードのどこにも表示されず、タブバーアイテムがクリックされたときに特別な処理を行いません。実際、それは前にクラッシュします

 - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController

とさえ呼ばれています。どういうわけか、タブバーは、このビューコントローラーが割り当てられてスタック上にあるとまだ考えているように見えますが、そうでなければ、なぜメッセージを送信しようとするのでしょうか?

どんな助けでも大歓迎です。

4

1 に答える 1