Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何以编程方式禁用tabbaritems_Iphone_Objective C - Fatal编程技术网

Iphone 如何以编程方式禁用tabbaritems

Iphone 如何以编程方式禁用tabbaritems,iphone,objective-c,Iphone,Objective C,我有一个tabbarcontroller,它有3个tabbaritems。在第一个屏幕中,有一个按钮,单击该按钮后,我需要停用应用程序中的所有选项卡项 如何以编程方式停用应用程序中的所有tabbarItem 您可以在具有按钮的ViewController上设置布尔属性 BOOL isInDisabledTabState; @property BOOL isInDisabledTabState; 然后在视图控制器中实现UITABBARCONTROLLERDEGATE协议 MyViewContro

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

如何以编程方式停用应用程序中的所有
tabbarItem


您可以在具有按钮的ViewController上设置布尔属性

BOOL isInDisabledTabState;
@property BOOL isInDisabledTabState;
然后在视图控制器中实现UITABBARCONTROLLERDEGATE协议

MyViewController:UIViewController <UITabBarControllerDelegate>
然后,当按下按钮时,相应地将BOOL属性设置为TRUE/FALSE

-(IBAction) disableTabsButtonPressed:(id)sender {
    self.isInDisabledTabState = TRUE;
}
在ViewController中,还可以在视图控制器中实现以下协议方法(请参阅UITabBarControllerDelegate的参考)


您想禁用项目,使其无法单击,还是只想删除选项卡栏项目的图像。我想禁用项目,使其无法单击。此代码是否会禁用
tabbarcontroller
的所有
tabbaritems
?我没有进行语法检查或运行时检查,但理论上是这样的do(它假定带有“禁用选项卡”按钮的视图控制器是第一个视图控制器)。您可能需要考虑让应用程序委派您的Tabbar控制器委托,在加载了选项卡条的主视图之后(或使用NIB到所有者的出口)设置委托,并在App委托中具有布尔转换,因为这可能是一个略微更干净的设计。
-(IBAction) disableTabsButtonPressed:(id)sender {
    self.isInDisabledTabState = TRUE;
}
- (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.

}