UITabBar选项卡推送新的ViewController

时间:2014-01-02 21:15:42

标签: ios objective-c uiviewcontroller uinavigationcontroller uitabbarcontroller

假设我的UITabBar中有4个项目:A B C D。

通过委托方法,D从viewController UITabBar's推送新的navigationController,(删除该视图的tabBar)。

这样可以正常使用,但是当从新视图返回时,如何让UITabBar不显示D的空白视图?

我尝试在推送时将selectedIndex设置为上一个索引,但这只是挂起应用程序(似乎适用于模态,而不是在推送时。)

1 个答案:

答案 0 :(得分:2)

如果我正确解释了这一点,当您在选择选项卡时按下视图时,您将同时更改所选的选项卡。这可能是尝试更改您当前正在推送视图的视图层次结构(这是选择您尝试将其设置为的其他选项卡的结果)。所以它可能会崩溃,因为它正在替换正在显示的视图。

另外,从它的声音来看,你在UITabBarController内使用了UINavigationController。 Apple说你不应该在另一个视图控制器中放置UITabBarController。以下内容摘自Apple UITabBarController上的文档:

  

部署标签栏界面时,必须将此视图安装为窗口的根目录。与其他视图控制器不同,标签栏界面不应该作为另一个视图控制器的子项安装。

如果是这种情况,您应该重新设计您的应用,这样您就不会在任何其他视图控制器中包含标签栏控制器,或者您的应用可能表现得很奇怪或在某个时候停止工作。

如果你想让事情按照你想要的方式运行,你可以直接使用UITabBar,并实现你自己的UITabBarDelegate。