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.
}