2012-11-23 33 views
0

我正在使用一个tabbar,每个tab都有一个导航控制器,而这又有一堆视图。每个视图都有自己的视图控制器,但现在这并不重要。观看导航控制器中的主要视图吗?

让我们有一个标签1,导航控制器1的视图A,B,C。 但是,应用程序的性质决定了视图B是主视图。

所以我想要的是,默认情况下(在应用程序第一次或重新启动后),当我点击标签1时,我会看到B视图和后退按钮到一个视图。

我该如何做到这一点?

+0

为什么我发现自己无法理解你的问题?该死的!!! – brianLikeApple

+0

为了正确理解这个问题,人们必须牢固地理解视图和控制器之间的区别,理解视图控制器有一个内置的主视图,理解UITabbarController - > UINavigationController - >任何ViewControllers堆栈的典型选项卡应用层次结构。并了解这种应用程序的典型UI工作流程。 我暗示了所有这些问题。 –

回答

0

您可以为标签栏控制器设置委托并实施tabBarController:didSelectViewController:来检测有人点击标签。如果您检测到A即将被选中,而您希望显示B,您可以告诉A的控制器使用其导航控制器推动B的控制器。

0

尝试初始化,推动视图B(无动画)到视图A.在viewDidLoad中导航堆栈

0

你可以使用的UINavigationController的setViewControllers:animated:。 根据您的确切需求,您可以在您的应用代理applicationWillEnterForeground:applicationDidBecomeActive:方法中设置此值。

0

我记得有一个苹果示例应用程序完全做到这一点。总的想法是,保存最后一个可见视图控制器(或只是硬编码一个你想要的),然后使用的东西,像这样把它推到可见状态:

[myNavigationController pushViewController:viewControllerToBeVisible animate:NO];

你想要展现应用tabBarController:didSelectViewController:,并根据哪个viewController被选中来处理不同的情况。