UIAlertAction处理程序未调用,而其他一个起作用

时间:2018-10-01 14:01:13

标签: ios swift alert uialertcontroller uialertaction

我的UIAlertController当前遇到一个奇怪的问题。它应该在下载失败时通知用户,并为他们提供“ 重试”或“ 取消”。

UIAlertController获得两项操作,一项重新启动项目下载,另一项可视化地处理取消。当我对其进行测试时,重试操作的功能与预期的一样-会显示相同的警报,直到恢复Internet连接为止,然后继续下载,就像应该的那样。

但是,似乎没有调用取消操作的handler。这是代码:

func showDownloadErrorDialogue(project: Project, error: Error) {

    let alertController = UIAlertController(title: "DL failed", message: "DL failed, try again", preferredStyle: .alert)

    let actionRetry = UIAlertAction(
        title: "retry",
        style: .default,
        handler: { action in
            self.retryDownload()
        }
    )

    let actionCancelDownload = UIAlertAction(
        title: "cancel",
        style: .default,
        handler: { action in
            self.onDownloadCanceledFromErrorMessage()
        }
    )

    alertController.addAction(actionRetry)
    alertController.addAction(actionCancelDownload)

    self.present(alertController, animated: true, completion: nil)
}

func onDownloadCanceledFromErrorMessage() {
    NSLog("ARVC: Download was canceled from error message")
}
当我按下取消按钮并且未记录onDownloadCanceledFromErrorMessage()中的消息时,不会调用

NSLog

有人曾经历过类似的经历吗?有谁知道出什么问题了吗?预先感谢。

0 个答案:

没有答案