1

我在创建视图控制器后立即将其分配给我的选项卡。是否可以选择单击选项卡后将显示的视图?

例如 //user clicks tab 1 if(hasMessages) //show view A else //show view B

4

1 回答 1

1

是的,有可能。您需要为您的选项卡控制器设置一个委托:

UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
tabBarController.delegate = self;  // or whatever suitable class you have

该委托需要符合UITabBarControllerDelegate协议。

在您的委托中,实施tabBarController:didSelectViewController:并在其中找出您要呈现的视图。假设您的选项卡的根视图控制器是导航控制器,那么委托方法实现将是这样的:

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
    /* logic goes here */

    [viewController pushViewController:someNewVC animated:YES];
}
于 2012-10-11T19:25:33.520 回答