4

As what the title suggests, I would like to be able to lock all my tab bars except for one. And only after the user completes an action will I enable all the rest of the tab bars. How can I do that?

4

3 回答 3

15

我还没有尝试过,但是根据文档,您可以从代表处返回 NO tabBarController:shouldSelectViewController:

[更新]我只是出于好奇而尝试过-它似乎工作正常。从“标签栏应用程序”模板创建一个新项目,然后转到-viewDidLoad您的 FirstViewController。添加这一行:

[self.tabBarController setDelegate:self];

然后实现委托方法:

-(BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
    if (userHasCompletedAction) {
        return YES;
    }
    return NO;
}

不要忘记遵守<UITabBarControllerDelegate>您的 .h 文件!

希望有帮助。

于 2011-08-12T09:14:37.407 回答
4

你必须实现这个方法

- (void)tabBarController:(UITabBarController *)tabBarController1 didSelectViewController:(UIViewController *)viewController {

    if ([tabBarController1 selectedIndex]==0) { 
        UITabBarItem *tabBarItem = [[[[self tabBarController]tabBar]items] objectAtIndex:1];
        [tabBarItem setEnabled:FALSE];

    } 
}

您必须执行类似的操作才能禁用所需的标签栏项目。

于 2011-08-12T09:17:47.607 回答
0

tabBar:didSelectItem:中的方法UITabBarDelegate可能会有所帮助。

于 2011-08-12T09:13:25.560 回答