Ios 当在UITabbarController中切换选项卡时,PoptRoot UINavigationController

Ios 当在UITabbarController中切换选项卡时,PoptRoot UINavigationController,ios,uiviewcontroller,uinavigationcontroller,uitabbarcontroller,Ios,Uiviewcontroller,Uinavigationcontroller,Uitabbarcontroller,我有一个带有2个选项卡栏项的UITabbarController。每个选项卡栏项都包含几个与UINavigationController链接的UIViewController。我希望每次切换选项卡项时,显示的视图都是根。我该怎么做?您可以使用UITABBARCONTROLLEDELEGATE的方法tabbar控制器:应选择ViewController:跟踪用户更改选项卡,并在正在选择的导航控制器上执行PoptrootViewController: 另一个相当奇怪的解决方案可能涉及子类化UINav

我有一个带有2个选项卡栏项的UITabbarController。每个选项卡栏项都包含几个与UINavigationController链接的UIViewController。我希望每次切换选项卡项时,显示的视图都是根。我该怎么做?

您可以使用
UITABBARCONTROLLEDELEGATE
的方法
tabbar控制器:应选择ViewController:
跟踪用户更改选项卡,并在正在选择的导航控制器上执行
PoptrootViewController:


另一个相当奇怪的解决方案可能涉及子类化
UINavigationController
,并在
视图中执行相同的操作:

以下是结构:tabbaritem1->viewcontroller1 tabbaritem2->viewcontroller2->viewcontroller3我应该在哪里使用UITabBarControllerDelegate的方法?您应该设置
UITabBarController
的委托在您创建它的地方,我猜是您的
AppDelegate
AppDelegate
本身可以扮演
uitabarcontrollerdelegate
的角色并实现该方法。(虽然这不是最干净的做法,但对于较小的项目来说也可以。)最佳做法是什么?这里的要点是,最终
AppDelegate
会成为无数事情的代表,并变得杂乱无章。我可能会有一个单独的对象来管理UI导航,但仅此而已。