UIAlertAction的处理程序有点太晚了 - 我怎么能立即做到?

时间:2016-02-17 03:34:20

标签: ios uialertcontroller uialertaction

我正在尝试(...)为添加到UIAlertController的按钮添加声音效果。我在处理程序中发出声音效果,但这实际上有点太晚了。声音太晚了0.5秒。我想要在警报即将解散时立即触发声音,而不是在解除警告之后。使用UIAlertView,可以使用alertWillDismiss ...而不是alertDidDismiss来处理。

我错过了什么吗?

3 个答案:

答案 0 :(得分:3)

不,你没有错过任何东西。 UIAlertController不提供您正在寻找的功能。考虑提供您自己的视图控制器,您可以通过它控制您所需的精细控制。

答案 1 :(得分:2)

我使用了Patrick Goley的建议,即继承UIAlertController并覆盖viewWillDisappear。为我工作很棒。

'D'

答案 2 :(得分:-1)

有点讨厌,但也许你可以

  1. 尝试并获取对警报按钮的引用(通过遍历-admittedly私有视图层次结构树),
  2. 使用KVO检测其selected和/或highlighted属性的任何更改(我自己的经验是selected无法可靠地观察到,而highlighted是)。
  3. ...但所有这些都非常脆弱,不优雅,可能会在未来的操作系统版本中出现中断和/或让您从应用程序商店中被拒绝......?

    所以你最好的选择(即使最费力)是推出自己的模态视图控制器: