iOS - 是否可以在运行时为uitabbar选择视图?

时间:2012-10-11 18:43:04

标签: iphone ios uitabbarcontroller

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

例如     //用户点击标签1     如果(hasMessages)           //显示视图A.      其他           //显示视图B

1 个答案:

答案 0 :(得分: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];
}