我正在使用一个标签栏,每个标签都有一个导航控制器,而这又有一堆视图。每个视图都有自己的视图控制器,但现在这并不重要。
让我们看一个带有导航控制器1的标签1,其中包含视图A,B,C。 然而,应用程序的性质决定了视图B是主要视图。
所以我想要的是默认情况下(在第一次或重新启动应用程序之后),当我点击选项卡1时,我会看到B视图和后退按钮到A视图。
我怎样才能做到这一点?
答案 0 :(得分:0)
您可以为标签栏控制器设置委托,并实施tabBarController:didSelectViewController:
以检测有人点击标签的时间。如果您检测到A即将被选中并且您希望显示B,则可以告诉A的控制器使用其导航控制器来推动B的控制器。
答案 1 :(得分:0)
尝试初始化并将视图B(无动画)推送到视图A的viewDidLoad中的导航堆栈。
答案 2 :(得分:0)
您可以使用UINavigationController的setViewControllers:animated:
。
根据您的具体需求,您可以在应用委托代理applicationWillEnterForeground:
或applicationDidBecomeActive:
方法中进行设置。
答案 3 :(得分:0)
我记得有一个苹果样本应用程序正是这样做的。一般的想法是保存最后一个可见的视图控制器(或者只是硬编码你想要的那个),然后使用类似的东西将其推送到可见状态:
[myNavigationController pushViewController:viewControllerToBeVisible animate:NO];
您希望显示应用tabBarController:didSelectViewController:
,并根据选择的viewController处理不同的情况。