我有这个我无法弄清楚的错误,它让我的头受伤。所以,基本上,在我的 iphone 应用程序中,我有 UITabBar 和一些标签,每个标签里面都有 UINavigationControllers。
像这样的东西:
someViewController *someController = [[someViewController alloc] myInit];
UINavigationController *someNav = [[UINavigationController alloc] initWithRootViewController:someController];
tab = [[UITabBarController alloc] init];
tab.viewControllers = [NSArray arrayWithObjects:otherNav, otherNav, evilNav, nil];
[window addSubview:tab.view];
因此,为了重现我的“宝贵”错误,我这样做:
click evilNav tab
-> push tableListView (category list)
-> push otherTableListView (category items list)
-> push someOtherView (single item)
-> popToRoot || popToController withindex:0 || click on evilNav tab again || pop to otherTableListView -> pop to tableListView
-> crash (with no notable error)
因此,如果我走到 someOtherView 这么远,我就无法在应用程序崩溃的情况下返回第一个 tableListView (rootViewController)。同时,我可以转到其他选项卡,然后甚至单击 evilNav(当它处于 otherTableListView 或 someOtherView 状态时)而不会崩溃。
什么可能导致这个问题?(如果你需要我会发布更多代码)