Récemment, je m'interrogeais sur le fait qu'une application iOS ne possède qu'une UIWindow
. Il ne semble pas être un problème de créer une autre UIWindow
et de la placer à l'écran.
Ma question est plutôt vague, mais je suis intéressée par:
UIWindow
qui ne puisse être réalisée autrement?UIWindow
?UIWindow
pour afficher des vues popover semblables à des vues sur un iPhone. Est-ce une bonne façon de le faire? Pourquoi? Pourquoi pas?UIWindow
?Ce n'est pas que je manque quelque chose. Je n'ai jamais ressenti le besoin de créer une autre instance de UIWindow
, mais cela permettrait peut-être de faire des choses étonnantes dont je ne suis pas au courant! :-)
J'espère que cela pourra m'aider à résoudre ce problème: Je dois ajouter une "vue de couverture" sur tout ce qui est actuellement affiché. Cela devrait également fonctionner s'il y a déjà un ou plusieurs contrôleurs modaux présentés. Si j'ajoute une UIView
à la vue du contrôleur racine, les contrôleurs modaux sont placés au-dessus, de même que les contrôleurs contextuels . Si je présente la vue de couverture de manière modale et qu'il existe déjà un contrôleur modal, seule une partie de l'écran est couverte.
Une UIWindow
peut flotter au-dessus d'autres éléments de l'interface utilisateur, comme le clavier système.
Pour adresser votre dernier paragraphe: Faites une UIWindow
avec le même cadre que votre fenêtre principale. Définissez sa propriété windowLevel
sur UIWindowLevelStatusBar
. Définissez sa propriété hidden
sur NO
.
En commençant par la réponse de Rob, j'ai un peu joué et j'aimerais écrire quelques notes pour que d'autres essayent d'obtenir des informations sur ce sujet:
UIWindow
. Il suffit de créer un et makeKeyAndVisible
. Terminé.UIWindow
couvre tout, même les modaux, les popovers, etc. Brillant!UIWindow
est toujours un portrait implicite. Il ne tourne pas. Vous devrez ajouter un contrôleur en tant que contrôleur racine de la nouvelle fenêtre et le laisser gérer la rotation. (Juste comme la fenêtre principale)UIWindowLevelStatusBar
pour qu'il couvre tout. Définissez sa propriété hidden
sur NO.UIWindow
peut être utilisée pour afficher sur l'écran des vues qui flottent au-dessus de tout. Sans créer de contrôleur factice pour l’intégrer dans une UIPopoverController
.