Ho un'app che presenta modalmente VisualizzaController, ho un ViewController standard e un UIAlertController in UIWindows differenti, il principale con priorità UIWindowLevel normale e la finestra Alert con priorità Alert UIWindowLevel, perché voglio avere sempre l'avviso in cima a qualunque ViewController che presenti modalmente sull'UIWindow principale ( Riferimento delegati app). Ho anche un'altra UIWindow con priorità della barra di stato, per i momenti in cui voglio sicuramente averne una diversa ViewController in cima a tutto. Quindi, quando presento UIWindow con una priorità di avviso UIWIndowLevel e dopo che presento una finestra diversa con la barra di stato UIWIndowLevel, l'avviso nella finestra di avviso viene visualizzato nella parte superiore della finestra della barra di stato. C'è una ragione per questo?
Uno screenshot di un'app di esempio che ho creato per provare
risposte:
0 per risposta № 1Quindi, stavo guardando alcune delle tante SO aperte e ho visto questa risposta: https://stackoverflow.com/a/24262942/6784707
Ho stampato i valori di (UIWindowLevelNormal, UIWindowLevelAlert, UIWindowLevelStatusBar) sono (0.0, 2000.0, 1000.0). Ma la documentazione di Apple afferma che:
permettere UIWindowLevelNormal: UIWindowLevel
Il livello predefinito Utilizza questo livello per la maggior parte dei tuoi contenuti, incluso per la finestra principale della tua app.
permettere UIWindowLevelAlert: UIWindowLevel
Il livello per una vista di avviso. Le finestre a questo livello vengono visualizzate sopra le finestre a livello di UIWindowLevelNormal.
permettere UIWindowLevelStatusBar: UIWindowLevel
Il livello per una finestra di stato. finestre a questo livello vengono visualizzati nella parte superiore delle finestre a livello di UIWindowLevelAlert.
Ho inserito un bug nel Bug Reporter di Apple.
La mia soluzione era quella di creare un CGFloat con un valore superiore a 2000 e aggiungerlo a windowLevel.