我使用uitabbar为ios开发了一个应用程序。在tabbar我有一些uitableview导致一些uiview。例如:
A:Tabbar按钮 - > B:表视图 - > C:相对于用户点击的表格视图的行的视图
标签栏的正常行为是,如果我点击直到我指示为“C”的视图,然后单击另一个标签栏按钮并单击回到我指示为“A”的标签栏按钮,我find打开视图“C”而不是“B”(由tabbar按钮调用的表视图)。 现在我希望tabbar始终指向其第一个视图(在这种情况下为B,即使用户点击直到C) 为了做到这一点,我在我的appdelegate中使用此代码,以确保它具有相同的行为,即使在“更多按钮”的情况下。
UITabBarController* tabBarController2 = (UITabBarController*)self.window.rootViewController;
if ([viewController isKindOfClass:[UINavigationController class]]) {
[tabBarController2.selectedViewController popToRootViewControllerAnimated:NO];
}
if (tabBarController2.selectedIndex < 4) {
[tabBarController2.moreNavigationController popViewControllerAnimated:NO];
}
有时,当它尝试弹出时,应用程序崩溃。我做错了什么?
该行
[tabBarController2.selectedViewController popToRootViewControllerAnimated:NO];
触发此警告“AppDelegate.m:27:10:'UIViewController'可能无法响应'popToRootViewControllerAnimated:'”
答案 0 :(得分:3)
我建议你的一种方法是,在你的UIView viewWillDisapear方法中编写以下代码:
[self.navigationController popToRootViewControllerAnimated:NO];
答案 1 :(得分:1)
popToRootViewControllerAnimated:
这是UINavigationController类的一个方法,你将它用于UITabBarController,它是UIViewController的子类实习生。
尝试:
[(UINavigationController *)tabBarController2.selectedViewController popToRootViewControllerAnimated:NO];