UITabbarcontroller内部的UINavigation控制器意外行为

时间:2011-10-10 20:59:59

标签: objective-c ios xcode

我在主窗口中设置了一个tabbarcontroller。其中一个选项卡是导航控制器,其根图X可以推动查看Y.

问题是:当导航控制器按下视图Y并点击对应于rootview X的选项卡时,应用程序会尝试再次显示rootview X,此时应用程序应该什么都不做。

那不应该发生,对吧?如果我仍然在该标签上,那么标签内的内容根本不会改变,对吗?

1 个答案:

答案 0 :(得分:1)

如果您点击当前的标签,嵌入式导航控制器的默认行为是弹出到根视图控制器。您可以通过设置UITabBarController的委托并覆盖UITabBarControllerDelegate方法来更改此方法

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController

并在viewController == tabBarController.selectedViewController时提供自定义行为(请注意,您将接收导航控制器,它是UIViewController的子类,而不是导航控制器的根视图控制器)。