我在创建视图控制器后立即将其分配给我的选项卡。是否可以选择单击选项卡后将显示的视图?
例如 //user clicks tab 1 if(hasMessages) //show view A else //show view B
我在创建视图控制器后立即将其分配给我的选项卡。是否可以选择单击选项卡后将显示的视图?
例如 //user clicks tab 1 if(hasMessages) //show view A else //show view B
是的,有可能。您需要为您的选项卡控制器设置一个委托:
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];
}