在选项卡栏中禁用的选项卡栏上显示操作表可以部分启用它

时间:2012-07-10 14:15:33

标签: objective-c ios cocoa-touch uikit

我想我在UIKit中发现了一个错误,但首先我要确定我不是疯了。

我有一个标签栏,里面有一个禁用的tabBarItem。如果我在标签栏中显示操作表,则取消/按下其中的任何按钮,在操作表关闭标签栏项出现后启用,但无法单击。

我希望它能够保持禁用状态。

我上传了example project here。在模拟器中运行它,然后按第一个视图控制器上的操作表按钮。请注意工作表出现之前和之后的第二个标签栏项的状态。该项目本身是一个标准的“选项卡式应用程序”模板,其中一个选项卡项已禁用,并且该按钮的IBAction已添加。

这是一个错误,还是我滥用了API?

2 个答案:

答案 0 :(得分:0)

看起来像是一个错误......

作为一种快速安全的解决方法,将其添加到视图控制器中(假设它将是UIActionSheet的委托)

- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex {
    for (UITabBarItem *item in self.tabBarController.tabBar.items) {
        item.enabled = !item.enabled;
        item.enabled = !item.enabled;
    }
}

答案 1 :(得分:0)

我检查了你的项目并找到了一种方法让它工作。 But I don't know actually is it a bug or not.我发现,只有当您使用actionsheet:方法显示方法中的showFromTabbar时,才会发生这种情况。

[sheet showFromTabBar:self.tabBarController.tabBar];

当我将其更改为仅在此视图中显示时,则不会更改tabBarItem图像。

[sheet showInView:self.view];

希望这可以帮助您继续开展该项目。