从NavigationController转到TabBarController

时间:2014-04-09 23:24:33

标签: ios objective-c cocoa-touch

所以......我有一个被推送到NavigationController的ViewController。在界面构建器中,我创建了一个单独的ViewController并将其嵌入到TabBarController中,它在Interface Builder中看起来很不错。

在我的应用程序中,我正试图从我的NavigationView中的一个ViewControllers转到TabBarController中的ViewController。我怎么能以正确的方式做到这一点?我不能只将视图推到NavigationController上,因为底部的标签栏不会显示。

任何帮助都会非常感激。

2 个答案:

答案 0 :(得分:2)

我相信您正在以向后的顺序使用UINavigationController和UITabBarController来推荐最佳实践。

除非在过去的一两年内发生了某些变化(可能已经发生过),否则UINavigationController永远不应该将UITabBarController推到它上面。如果您在应用程序中使用UITabBarController,它应该是window.rootViewController,导航控制器是UITabBarController的viewControllers数组的成员。

  

我正试图从我的NavigationView中的一个ViewControllers开始   到TabBarController中的ViewController。我该怎么做呢?   正确的方法?

在该结构中,您将目标视图控制器指定为viewControllers数组的另一个元素。然后,按照我的风格,我会从你的第一个视图控制器发送类似“LaunchOtherViewController”的NSNotification,因此你不需要第一个视图控制器知道标签栏控制器或第二个视图控制器。然后让一些知道第二个视图控制器接收该通知的类,并将UITabBarController的selectedIndex更新为第二个目标视图控制器的selectedIndex。

希望这是有道理的。

答案 1 :(得分:0)

您需要将TabBarController推送到视图上。您可能需要设置选项卡栏的选定视图控制器,但实际上将标签栏控制器推入导航堆栈(或以模态方式显示)非常重要。