更改tabBarController.selectedViewController只能工作一次?

时间:2011-04-12 19:00:58

标签: iphone objective-c uiviewcontroller uitabbarcontroller

我的iPhone应用程序使用UITabBarController。在第一个选项卡上,有一个场景,用户可以在不更改选项卡的情况下深入两个UIViewControllers。所以屏幕流程是这样的:

  1. 默认情况下,第一个标签打开即可加载应用。
  2. 用户按下UIButton,将其带到同一选项卡中的第二个UIViewController。
  3. 从第二个UIViewController,用户可以按下另一个UIButton将它们带到第三个UIViewController,仍然在同一个选项卡中
  4. 当使用这两行从第一个UIViewController切换到第二个时,这是有效的:

        2ndViewController = [[SecondViewController alloc] init];
        self.tabBarController.selectedViewController = 2ndViewController;
    

    但是,当我尝试从第二个UIViewController到第三个UIViewController执行相同操作时,它不起作用。该按钮没有做任何事情,我留在第二个UIViewController。

    任何人都可以解释为什么会这样吗?我有可以使用的解决方法吗?如果需要,我很乐意提供更多代码。

    提前致谢。

1 个答案:

答案 0 :(得分:3)

这不是该财产的意思。您很可能会遇到文档所述的“未定义行为”。

执行您正在执行的操作的最佳方法是在选项卡中放置UINavigationController并使用该控制器推送每个控制器。如果您不想显示导航栏,可以使用navigationBarHidden隐藏该导航栏。