切换标签时,应用程序因僵尸而崩溃

时间:2015-09-06 19:08:45

标签: ios swift nszombie

我有一个带有TabBarNavigationController和NavigationController的应用程序。 导航控制器的视图是

HomeViewController

CharacterViewController

FinalViewController

我在CharacterViewControllerFinalViewController中有一个功能,因此如果用户点击导航控制器的标签栏项,则会显示HomeViewController

func tabBarController(tabBarController: UITabBarController, didSelectViewController viewController: UIViewController) {
    if tabBarController.selectedIndex == 0{
        self.navigationController?.popToRootViewControllerAnimated(false)
    }
}

当用户在CharacterViewControllerFinalViewController中并转到另一个标签页然后再点击导航控制器标签时,popToRootViewControllerAnimated会被调用,而用户位于HomeViewController }。

到目前为止一切正常,问题是此时我从标签栏点击其他标签,应用程序崩溃了。 在日志中它显示我

2015-09-06 14:02:24.120 PIBA[32338:510545] *** -[PIBA.CharacterViewController respondsToSelector:]: message sent to deallocated instance 0x79e88320

如果我使用断点,则显示

0x8a217f <+783>:  jmp    0x8a2288

(这对我没有帮助)

所以我搜索了NS Zombies,测试结果显示:

 self.navigationController?.popToRootViewControllerAnimated(false)

正在发布一个对象

但是什么对象?我该如何保留它?

0 个答案:

没有答案