ios-UIDABBARCONTROLLER和UINavigationController-选项卡单击并显示特定控制器
我在使用iphone应用程序时遇到了一个非常头痛的问题。此应用程序基于ios-UIDABBARCONTROLLER和UINavigationController-选项卡单击并显示特定控制器,ios,uinavigationcontroller,uitabbarcontroller,Ios,Uinavigationcontroller,Uitabbarcontroller,我在使用iphone应用程序时遇到了一个非常头痛的问题。此应用程序基于UITabBarController,而Tab的每个控制器基于UINavigationController 在一个“UINavigationController”中,在这个“UINavigationController”堆栈中有两个控制器(我在这里称它为A和B),当单击选项卡时,它将显示“A”,在“A”中,如果单击,则有一个按钮将转到“B”,如果单击“B”中的“上一步”按钮,则将返回到“A”。见下图(对于客户的股份,我移除了一
UITabBarController
,而Tab
的每个控制器基于UINavigationController
在一个“UINavigationController”中,在这个“UINavigationController”堆栈中有两个控制器(我在这里称它为A和B),当单击选项卡时,它将显示“A”,在“A”中,如果单击,则有一个按钮将转到“B”,如果单击“B”中的“上一步”按钮,则将返回到“A”。见下图(对于客户的股份,我移除了一些部分)
控制器-A
控制器-B
问题是:客户端每次点击“设置”页签时都想显示“设置”页,这意味着如果它在“条款”页上,当点击“设置”页签时,它应该返回“设置”页
我试过这些密码-
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
{
return YES;
}
但我不知道下一步该怎么做,如何比较才能知道“设置”选项卡被点击了?以及如何始终显示“设置”页面。任何建议都将不胜感激。对于控制器(示例中的控制器B),只需添加以下代码:
-(void)viewDidDisappear:(BOOL)animated {
[self.navigationController popViewControllerAnimated:NO];
}
同意。您也可以作为UITabController的代表执行此操作,但这种方式更简单。除了@rdelmar建议的方法外,如果您希望始终转到导航控制器的第一个屏幕,您可以执行[self.navigationController popToRootViewControllerAnimated:YES];谢谢你的帮助,根据这个答案,我已经成功了D