2011-09-30 77 views
1

我有一个UITabBarController。一个选项卡是一个UINavigationController,它的rootViewController是UIViewController的一个子类。在我的viewViewController中,在我的viewDidLoad中,我推送了三个ViewControllers中的第一个。基于哪个UISegmentedControl被按下,我弹出旧的视图,并且推动对应于UISegmentedControl的viewController。这大部分工作。UINavigationController,rootViewController与UITabBarController

问题是,如果我当前在导航层次结构中,如果再次点击相同的选项卡(我已经在查看该选项卡),它将当前ViewController从堆栈中弹出并返回到rootViewController。我不知道为什么会发生这种情况。我只有一个地方,我popViewController和我在那里设置一个中断点,它永远不会被调用。所以我的假设是,当我在该选项卡上选择UITabBarController的选项卡时,它将返回到rootViewController。那是对的吗?有什么我可以解决这个问题吗?谢谢。

回答

0

您描述的功能是tabbarcontroller的标准。一些用户习惯于使用它,如果您禁用它,可能会感到沮丧。

但是,可以使用tabBarController:shouldSelectViewController委托函数。在该功能中,您可以检查视图控制器想要的选择是否与已经显示的相匹配。如果是这样,不要允许它。

相关问题