如何以编程方式禁用tabbaritems

时间:2011-11-02 03:05:12

标签: iphone objective-c

我有一个tabbarcontroller,它有3个tabbaritems。在第一个屏幕中,有一个button,点击该按钮后我需要停用应用程序中的所有tababritems

如何以编程方式deactivate应用程序中的所有tabbaritems

It looks something like this

1 个答案:

答案 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.

}