JAlertPresenter
以无冲突和无遗漏的方式优先显示应用的通知控制器。
快速示例
显示一个 Alert 控制器
当您发送一个控制器以显示时,有三种可能的状态:
- 如果没有正在显示的控制器,则发送的控制器将被显示。
- 如果正在显示具有更高优先级的控制器,则发送的控制器将被放置在优先级队列中,并在显示具有更高优先级的控制器之后显示。
- 如果正在显示具有较低优先级的控制器,则首先将那个控制器关闭,以显示新的控制器,然后再次显示具有较低优先级的控制器。
import JAlertPresenter
// The root view controller that must present the alerts
let presenter = JAlertPresenter(rootViewController: self)
let alert1 = JUIAlertController(title: "High", message: "High priority alert", preferredStyle: .alert)
let action1 = UIAlertControllerAction(title: "Dismiss")
alert1.addAction(action1)
presenter.present(alert1, priority: .high) {
print("High priority alert presented")
}
let alert2 = JUIAlertController(title: "Low", message: "Low priority alert", preferredStyle: .alert)
let action2 = UIAlertControllerAction(title: "Dismiss")
alert2.addAction(action2)
presenter.present(alert1, priority: .low) {
print("Low priority alert presented")
}
撤消一个警报控制器
如果控制器正在显示,它将立即关闭。但如果它在优先级队列中,它将被从队列中移除而不会显示。
presenter.dismiss(alert1)
或者
presenter.dismiss(restorationIdentifier: alert1.restorationIdentifier!)