我在导航项目中有一个UIBarButtonItem
,其中显示UIActionSheet
,其中包含一个用于切换快速设置的按钮:
操作表由按钮项显示:
[calendarSettingsSheet showFromBarButtonItem:self.navigationItem.leftBarButtonItem animated:YES];
然而,这是我遇到的问题:
当我点按下面的导航栏时,例如日历中的任意位置,UIActionSheet
解散,这是预期的。在我看来,在表格之外的任何触摸都应该忽略它。
但是:我仍然可以点按导航栏中的“设置”和“完成”按钮,不仅可以解除操作表,还可以点击按钮功能
因此,在UIActionSheet
打开时点击“设置”会导致另一个打开。通过检查操作表是否已打开,可以轻松避免这种情况。
但是,“完成”按钮会取消整个日历视图,让UIActionSheet
悬停在最初显示日历的视图上。
这是预期的行为吗?虽然我可以在显示操作表时禁用按钮,并在解除时启用它们,但这似乎是一种不必要的解决方法。
答案 0 :(得分:2)
这是预期的行为吗?
是
来自showFromBarButtonItem:animated:
在iPad上,此方法在弹出窗口中显示操作表,并将拥有该按钮的工具栏添加到弹出窗口的直通视图列表中。因此,工具栏中的点击会导致相应工具栏项的操作方法被称为。如果您希望在点击其他工具栏项时取消弹出窗口,则必须在操作处理程序方法中实现该行为。