gpt4 book ai didi

ios - 如果推送多个 AlertView,Swift 仅显示一个 AlertView

转载 作者:可可西里 更新时间:2023-11-01 02:17:57 24 4
gpt4 key购买 nike

如果我在 Controller 上有多个 AlertView,如果所有 AlertView 都分别触发,如何让它只显示最后一个 AlertView?请看下面的代码:

override func viewDidLoad() {
super.viewDidLoad()

self.getAPI1()
self.getAPI2()
self.getAPI3()
}

func getAPI1() {
do {
// try ... Get API Process
} catch {
let alertView = UIAlertView(title: "ERROR", message: "There is an error on getAPI1()", delegate: nil, cancelButtonTitle: "OK")
alertView.show()
}
}

func getAPI2() {
do {
// try ... Get API Process
} catch {
let alertView = UIAlertView(title: "ERROR", message: "There is an error on getAPI2()", delegate: nil, cancelButtonTitle: "OK")
alertView.show()
}
}

func getAPI3() {
do {
// try ... Get API Process
} catch {
let alertView = UIAlertView(title: "ERROR", message: "There is an error on getAPI3()", delegate: nil, cancelButtonTitle: "OK")
alertView.show()
}
}

既然getAPI1, getAPI2, getAPI3不管有没有报错都需要执行,如何只显示最后一个AlertView呢?谢谢。

最佳答案

您可以有一个变量来存储当前正在激活和显示的警报。

var activeAlert : UIAlertView! = nil

每次显示警报时,请检查之前是否显示过任何警报。你可以这样检查

if nil != activeAlert {
activeAlert.dismissWithClickedButtonIndex(-1, animated: false)
//show your new alert here
}

这样可以确保始终显示最后一个警报。确保您正在实现 UIAlertViewDelegate 协议(protocol)的 alertView:clickedButtonAtIndex: 方法。此外,UIAlertView 已从 iOS 9.0 中弃用,因此我建议您改用 UIAlertViewController

关于ios - 如果推送多个 AlertView,Swift 仅显示一个 AlertView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35144042/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com