0

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

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

我希望它保持禁用状态。

我在这里上传了一个示例项目。在模拟器中运行它并按下第一个视图控制器上的操作表按钮。注意工作表出现前后第二个标签栏项目的状态。该项目本身是一个标准的“选项卡式应用程序”模板,其中一个选项卡项被禁用,并为按钮添加了一个 IBAction。

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

4

2 回答 2

0

好像是个bug。。。

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

- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex {
    for (UITabBarItem *item in self.tabBarController.tabBar.items) {
        item.enabled = !item.enabled;
        item.enabled = !item.enabled;
    }
}
于 2012-07-12T16:07:49.823 回答
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];

希望这可以帮助您继续从事该项目。

于 2012-07-14T13:02:18.737 回答