目标 C:如何禁用除一个之外的所有选项卡栏的用户交互?

发布于 2024-11-29 18:17:09 字数 71 浏览 1 评论 0原文

正如标题所示,我希望能够锁定除一个之外的所有选项卡栏。只有在用户完成操作后,我才会启用所有其余的选项卡栏。我怎样才能做到这一点?

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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

随风而去 2024-12-06 18:17:09

我还没有尝试过,但根据 docs,您可以从 tabBarController:shouldSelectViewController: 委托返回 NO。

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

[self.tabBarController setDelegate:self];

然后实现委托方法:

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

不要忘记在 .h 文件中遵守

希望有帮助。

I haven't tried it, but according to the docs, you can return NO from the tabBarController:shouldSelectViewController: delegate.

[UPDATE] I just tried that out of curiosity - it seems to work fine. Create a new project from the "Tab bar application" template and then go to the -viewDidLoad of your FirstViewController. Add this line:

[self.tabBarController setDelegate:self];

and then implement the delegate method:

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

Don't forget to conform to <UITabBarControllerDelegate> in your .h file!

Hope that helps.

我为君王 2024-12-06 18:17:09

您必须实现此方法

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

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

    } 
}

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

You have to implement this method

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

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

    } 
}

You have to do something like this for disabling your required tabbar items.

柏林苍穹下 2024-12-06 18:17:09

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

The method tabBar:didSelectItem: in UITabBarDelegate could help.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文