ios-UIDABBARCONTROLLER和UINavigationController-选项卡单击并显示特定控制器

ios-UIDABBARCONTROLLER和UINavigationController-选项卡单击并显示特定控制器,ios,uinavigationcontroller,uitabbarcontroller,Ios,Uinavigationcontroller,Uitabbarcontroller,我在使用iphone应用程序时遇到了一个非常头痛的问题。此应用程序基于UITabBarController,而Tab的每个控制器基于UINavigationController 在一个“UINavigationController”中,在这个“UINavigationController”堆栈中有两个控制器(我在这里称它为A和B),当单击选项卡时,它将显示“A”,在“A”中,如果单击,则有一个按钮将转到“B”,如果单击“B”中的“上一步”按钮,则将返回到“A”。见下图(对于客户的股份,我移除了一

我在使用iphone应用程序时遇到了一个非常头痛的问题。此应用程序基于
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