UIAlertViewDelegate协议定义了两个方法,alertView:clickedButtonAtIndex:和alertView:didDismissWithButtonIndex:,在我看来这两个方法的用处是一样的。
当clickedButtonAtIndex和didDismissButtonWithIndex做同样的事情时,为什么会有它们呢?我知道在关闭警报视图之前也会发生willDismissButtonWithIndex,但是有没有理由使用clickedButtonAtIndex而不是didDismissButtonWithIndex呢
发布于 2010-04-17 03:50:35
我发现这两者之间有一个更有用的区别:
当显示UIAlertView时,设备进入休眠状态,即使警报视图实际上并未关闭,也会调用alertView:didDismissWithButtonAtIndex:。一旦设备唤醒,它将再次显示。只有当用户单击其中一个按钮时,才会调用alertView:clickedButtonAtIndex:。
发布于 2010-03-23 01:08:47
在用户单击警报视图上的按钮时调用alertView:clickedButtonAtIndex:,而在从屏幕上取消警报视图之后调用alertView:didDismissWithButtonIndex:。(请参阅UIAlertViewDelegate Protocol Reference。)
差别很小,但它允许您在动画之前或之后执行某些操作。
发布于 2010-11-22 00:08:47
如果警报视图由于任何原因(包括被其他UIAlertView覆盖、进入睡眠状态等)而消失,则会调用didDismissWithButtonAtIndex:。这可能意味着即使用户不单击任何东西,也可以调用该方法。如果你依赖于这个委托回调来响应用户实际点击的按钮,这可能会导致意外的行为。在这种情况下,clickedButtonAtIndex:更有用。
https://stackoverflow.com/questions/2494091
复制相似问题