我有一个tabbarcontroller
,它有3个tabbaritems
。在第一个屏幕中,有一个button
,点击该按钮后我需要停用应用程序中的所有tababritems
。
如何以编程方式deactivate
应用程序中的所有tabbaritems
?
答案 0 :(得分:2)
您可以在ViewController上设置具有按钮的BOOL属性。
BOOL isInDisabledTabState;
@property BOOL isInDisabledTabState;
然后还在视图控制器中实现UITabBarControllerDelegate协议。
MyViewController:UIViewController <UITabBarControllerDelegate>
将视图控制器设置为标签栏上的标签栏代理。
- (void)viewDidLoad {
[self.tabBarController setDelegate:self];
}
然后按下按钮时,将BOOL属性设置为TRUE / FALSE。
-(IBAction) disableTabsButtonPressed:(id)sender {
self.isInDisabledTabState = TRUE;
}
在ViewController中,还在视图控制器中实现以下协议方法(参见UITabBarControllerDelegate的参考)
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
if (self.isInDisabledTabState) {
return FALSE; // If in disabled state don't switch to the other tab
}
return TRUE; // else switch.
}