UITabBarController很奇怪?

时间:2011-07-26 18:34:16

标签: iphone objective-c cocoa-touch uitabbarcontroller selectedindex

如果我正常加载UITabBarController并在视图之间切换,则会调用每个视图控制器的viewWillAppear。 但事实并非如此。

我想在触摸另一个标签后立即切换到另一个标签页。

如果我指定要加载的标签 - 例如[self.tabBarController setSelectedIndex:0]其中一个标签(例如标签4)......它会立即返回标签0。

但之后......当我在它们之间切换时,它不会在任何标签上调用viewWillAppear。 例如,如果我再次转到选项卡4,它不会返回到选项卡0.我希望它是一个永无止境的循环,因为我希望在选项卡4触摸时选项卡0加载。

但它运行 JUST ONCE !!

为什么??


注意:问题已被修改。

2 个答案:

答案 0 :(得分:2)

我想我找到了解决方案。每次 你点击你的标签,在两个标签上调用viewWillAppear

您可以在AppDelegate(或UITabBarController代理中的其他地方)执行此操作:

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController

示例代码:

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
    if([self.tabBarController.viewControllers indexOfObject:viewController] == 1) {
        [self.tabBarController setSelectedIndex:0];
    }
}

答案 1 :(得分:0)

设置selectedIndex不会更改selectedViewController。您将不得不更改selectedViewController本身。请查看the documentation了解更多详情。