在UITabItem选择时,iOS应用程序崩溃

时间:2013-08-28 04:45:34

标签: ios cocoa-touch uiviewcontroller uitabbarcontroller nszombie

我似乎有一个非常奇怪的问题。我的应用有一个UITabBar,可让您选择各种视图控制器。如果在给定的选定选项卡项中,另一个视图控制器被推入堆栈,然后使用故事板segues或UINavigationControllerpushViewControllerpopViewController的堆栈中弹出,当您选择另一个时标签项,应用程序崩溃。我跟踪了这​​个并发现有一个僵尸对象,即被推动然后弹出的viewcontroller。该应用程序显然正在尝试向其发送消息。这是日志消息。

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

我在代码中看到的地方,一旦它从堆栈中弹出并且可能已经取消分配,我访问了viewcontroller,并且在单击标签栏项目时我没有做任何特殊处理。实际上它在

之前崩溃了
 - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController

甚至被称为。似乎标签栏仍然认为这个viewcontroller已经被分配并且在堆栈上,否则为什么它会尝试向它发送消息呢?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

发现了这个问题。那个解除分配的视图控制器实际上被指定为UITabBarController的委托!哎呀。在这里找到了这个答案。

View Controller getting a message sent to it after release, causes a crash