0

我正在使用一个标签栏,每个标签都有一个导航控制器,而这又具有一堆视图。每个视图都有自己的视图控制器,但现在这并不重要。

让我们有一个带有导航控制器 1 的选项卡 1,其中包含视图 A、B、C。但是,应用程序的性质决定了视图 B 是主要视图。

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

我怎样才能做到这一点?

4

4 回答 4

0

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

于 2012-11-23T16:21:53.903 回答
0

您可以使用setViewControllers:animated:UINavigationController。根据您的确切需求,您可以在您的应用程序委托applicationWillEnterForeground:applicationDidBecomeActive:方法中进行设置。

于 2012-11-23T16:48:51.630 回答
0

尝试初始化视图 B(没有动画)并将其推送到视图 A 的 viewDidLoad 中的导航堆栈。

于 2012-11-23T16:28:01.587 回答
0

我记得有一个 Apple 示例应用程序可以做到这一点。一般的想法是保存最后一个可见的视图控制器(或者只是硬编码你想要的那个),然后使用类似这样的东西将它推送到可见状态:

[myNavigationController pushViewController:viewControllerToBeVisible animate:NO];

您想要显示应用程序tabBarController:didSelectViewController:,并根据选择的 viewController 处理不同的情况。

于 2012-11-23T17:02:32.037 回答