4

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

我想在触摸另一个选项卡后立即切换到另一个选项卡。

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

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

但它只运行一次

为什么 ??


注意:问题已被编辑。

4

2 回答 2

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];
    }
}
于 2011-07-26T19:33:51.183 回答
0

设置 selectedIndex 不会改变 selectedViewController。您将不得不更改 selectedViewController 本身。查看文档以获取更多详细信息。

于 2011-07-26T18:51:43.590 回答