【问题标题】:ios UIActionSheet cancel button doesn't work rightios UIActionSheet 取消按钮无法正常工作
【发布时间】:2011-07-14 21:05:02
【问题描述】:

我有这个问题: 这是我的代码:

UIActionSheet *popupQuery = [[UIActionSheet alloc] initWithTitle:@"Share the race" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"Send with mail" otherButtonTitles:nil];
    popupQuery.actionSheetStyle = UIActionSheetStyleBlackTranslucent;
    [popupQuery showInView:self.view];
    [popupQuery release];

一切似乎都很好,2 个按钮显示正确,“发送邮件”按钮还可以,但取消仅在上方捕获点击... 这是一个说明情况的镜头:

我该如何解决这个问题?

谢谢:)

【问题讨论】:

标签: iphone ios objective-c uiactionsheet cancel-button


【解决方案1】:

我的猜测是UIActionSheet 的底部超出了视图的范围,因此不会响应触摸。

要测试这个理论,请添加另一个按钮并查看是否所有上部按钮都可以正常工作,但底部按钮仍然表现出这种行为。

要解决此问题,请确保视图延伸到屏幕底部。如果您的应用程序中有一个 tabBar,那将是我对问题的怀疑。如果您希望 tabBar 上方的工作表,您可以使用showFromTabBar:,或使用showFromToolbar: 从工具栏中显示它。

如果你没有底栏,那我就错了,不知道。

【讨论】:

  • 谢谢!没错!我使用 showFromTabBar 而不是 showInView,现在可以了!
【解决方案2】:

您应该将操作表显示为应用程序窗口的子视图,而不是当前视图的子视图。

UIActionSheet *actionSheet = [[UIActionSheet alloc] init...];

// ...

[actionSheet showInView:[UIApplication sharedApplication].keyWindow];

也许它会帮助别人。

快乐编码:)

【讨论】:

    【解决方案3】:

    使用

    [actionSheet showFromTabBar:[[self tabBarController] tabBar]];
    

    而不是

    [actionSheet showInView:self.view];
    

    【讨论】:

      猜你喜欢
      • 2021-01-17
      • 1970-01-01
      • 1970-01-01
      • 2018-05-20
      • 1970-01-01
      • 2015-01-31
      • 1970-01-01
      • 1970-01-01
      • 2013-11-11
      相关资源
      最近更新 更多