【问题标题】:UIActionSheet does not prevent external, "under" touchesUIActionSheet 不会阻止外部的“欠”接触
【发布时间】:2013-10-23 14:47:20
【问题描述】:

我在一个导航项中有一个UIBarButtonItem,它显示一个UIActionSheet,并带有一个用于切换快速设置的按钮:

动作表从按钮项呈现:

[calendarSettingsSheet showFromBarButtonItem:self.navigationItem.leftBarButtonItem animated:YES];

但是,这是我遇到的问题:

当我点击导航栏下方时,例如日历中的任何位置,UIActionSheet 会消失,这是意料之中的。在我看来,任何在工作表之外的触摸都应该忽略它。

但是:我仍然可以点击导航栏中的“设置”和“完成”按钮,不仅操作表没有被关闭,而且按钮功能 em>。

因此,在UIActionSheet 打开时点击“设置”会导致另一个打开。通过检查操作表是否已打开,可以轻松避免这种情况。

但是,“完成”按钮会关闭整个日历视图,让 UIActionSheet 悬停在最初显示日历的视图上。

这是预期的行为吗?虽然我可以在显示操作表时禁用按钮,并在它被关闭时启用它们,但这似乎是一种不必要的解决方法。

【问题讨论】:

  • 我相信这与stackoverflow.com/questions/6136792/… 是同一个问题,我认为他们为此使用了 UIPopoverViewController。不幸的是,我们无权访问它,您可能需要手动将其关闭。

标签: ios ipad ios7 uiactionsheet


【解决方案1】:

这是预期的行为吗?

是的。

来自showFromBarButtonItem:animated:的文档

在 iPad 上,此方法在弹出窗口中显示操作表,并将拥有该按钮的工具栏添加到弹出窗口的传递视图列表中。因此,工具栏中的点击会导致相应工具栏项的操作方法被调用。如果您希望在点击不同的工具栏项时关闭弹出框,则必须在您的操作处理程序方法中实现该行为。

【讨论】:

  • 在iOS 7.1.1 中,照片App 出现了同样的问题。 1)在“时刻”视图中,点击“选择” 2)点击您的照片 3)点击垃圾桶图标以删除照片,但不要删除 4)现在点击“添加到”。请注意“添加到”控制器是如何呈现的,并且“删除照片”弹出框/操作表仍然可见。您也可以使用垃圾桶和“分享”按钮来做到这一点。
猜你喜欢
  • 2021-11-11
  • 2020-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-04
  • 1970-01-01
  • 2022-01-03
相关资源
最近更新 更多