我有一个提供模态View控制器的应用程序,我在不同的UIWindows中有一个标准的ViewController和一个UIAlertController,主要具有正常的UIWindowLevel优先级和Alert窗口具有Alert UIWindowLevel优先级,因为我希望始终保持警报我在主UIWindow(AppDelegates引用)上以模态方式呈现的ViewController。我还有另一个具有状态栏优先级的UIWindow,我希望肯定会有不同的时刻 ViewController在一切之上。 因此,当我使用Alert UIWIndowLevel优先级呈现UIWindow时,在我使用状态栏UIWIndowLevel呈现不同窗口后,警报窗口中的警报将显示在状态栏窗口的顶部。这有什么理由吗?
答案 0 :(得分:3)
所以,我正在看一些开放的SO,并看到了这个答案:https://stackoverflow.com/a/24262942/6784707
我打印的值(UIWindowLevelNormal,UIWindowLevelAlert,UIWindowLevelStatusBar)是(0.0,2000.0,1000.0)。但Apple的文件指出:
让 UIWindowLevelNormal :UIWindowLevel
默认级别。将此级别用于大部分内容,包括应用的主窗口。
让 UIWindowLevelAlert :UIWindowLevel
警报视图的级别。此级别的Windows显示在UIWindowLevelNormal级别的窗口顶部。
让 UIWindowLevelStatusBar :UIWindowLevel
状态窗口的级别。此级别的Windows 显示在UIWindowLevelAlert级别的窗口顶部。
我填写了Apple的Bug Reporter中的一个错误。
我的解决方案是创建一个值超过2000的CGFloat并将其添加到windowLevel。