UIActionSheet不会阻止外部的“下”触摸

时间:2013-10-23 14:47:21

标签: ios ipad ios7 uiactionsheet

我在导航项目中有一个UIBarButtonItem,其中显示UIActionSheet,其中包含一个用于切换快速设置的按钮:

UIActionSheet screenshot

操作表由按钮项显示:

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

然而,这是我遇到的问题:

当我点按下面的导航栏时,例如日历中的任意位置,UIActionSheet解散,这是预期的。在我看来,在表格之外的任何触摸都应该忽略它。

但是:我仍然可以点按导航栏中的“设置”和“完成”按钮,不仅可以解除操作表,还可以点击按钮功能

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

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

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

1 个答案:

答案 0 :(得分:2)

  

这是预期的行为吗?

来自showFromBarButtonItem:animated:

的文档
  

在iPad上,此方法在弹出窗口中显示操作表,并将拥有该按钮的工具栏添加到弹出窗口的直通视图列表中。因此,工具栏中的点击会导致相应工具栏项的操作方法被称为。如果您希望在点击其他工具栏项时取消弹出窗口,则必须在操作处理程序方法中实现该行为。