如果有许多竞争警报,会显示哪种警报?

时间:2017-05-01 12:17:38

标签: ios uikit uialertcontroller

在iOS中,实际上一次可能会发生许多警报。

例如,如果您要求相册(或其他)权限,操作系统将显示提醒。同时,程序员可以随意UIViewcontroller.present() UIAlertController个实例。

在这种情况下,首先会选择什么警报?

2 个答案:

答案 0 :(得分:0)

我不知道内部实现,但根据我在iOS 10.1.1实际设备上的实验,警报按此顺序显示。

  1. 系统提醒。操作系统本身提供的警报。 (例如相册许可请求)这是最高优先级。如果出现任何此警报,则任何其他应用内警报将暂时隐藏,并在最终用户在系统警报上做出选择后再次显示。系统警报之间的优先级未知。

  2. 您的应用内提醒。您一次只能提供一个应用内警报,因为您应该使用UIViewController.present方法在当前版本的iOS中显示提醒。此方法将使用您最近的表示上下文VC或其窗口的根VC。在任何一种情况下,Apple实际上都强制您一次只提供一个警报,并自行控制警报的优先级。

答案 1 :(得分:0)

系统提醒和您通过UIAlertController创建的提醒,无论您添加多少提醒,它都会始终显示最新提醒。想象一下数据结构Stack。所有警报都会添加到堆栈中,然后以后进先出顺序显示。当您逐个关闭警报时,堆栈上的警报将逐个弹出。

相关问题