Je teste le comportement de l'iPhone X à l'aide du simulateur Xcode. Pour une raison étrange, si je cache la barre d'état, la barre de navigation est poussée vers le haut, ce qui entraîne la disparition complète du titre et la coupe des boutons gauche et droit. Cela ne se produit que sur l'iPhone X.
Illustration:
Comment puis-je masquer la barre d'état et conserver la barre de navigation à une position visible?
METTRE À JOUR:
Exemple de projet pour votre convaincre:
https://drive.google.com/file/d/0B5qJARV-Oc9ra1hvZkpXZm9lRUE/view?usp=sharing
Une solution consiste à incorporer le contrôleur de navigation dans un contrôleur de vue de conteneur correctement contraint à la zone de sécurité.
Créez simplement un autre contrôleur de vue et faites glisser une "vue conteneur" de la bibliothèque d'objets. Cette vue comporte des contraintes de haut, de bas, de début et de fin vers la zone sécurisée, toutes avec des constantes égales à 0. Si vous faites glisser la souris de la vue du conteneur vers le contrôleur de navigation, vous aurez la possibilité de définir une "séquence intégrée" "qui intégrera le contrôleur de vue sélectionné en tant que contrôleur de vue enfant.
J'ai configuré la barre d'état pour qu'elle soit masquée sur le nouveau contrôleur de vue que j'ai créé, et cela fonctionne correctement.
Cela ressemble à quelque chose que UINavigationBar
devrait gérer automatiquement, mais cette solution de contournement semble bien fonctionner.
Autre remarque: si vous modifiez la couleur de la barre de navigation, vous devez également créer une autre vue au-dessus de la vue du conteneur et modifier sa couleur pour qu'elle corresponde à la couleur de la barre de navigation.
Pour une petite application, l'utilisation de Push en segment Modal et l'ajout de ma propre barre de navigation ont changé. J'ai utilisé Push parce que ça a l'air bien, et j'avais déjà un Modal pour une autre partie que je voulais animer différemment pour des raisons de style.
Pour les petites applications, cela peut être la solution la plus rapide et la plus simple, mais ma prochaine mise à jour devra utiliser le contrôleur de navigation. Pour cela, je pense que je vais allumer la barre d’état, ce qui n’a rien de grave pour moi et me permet de fonctionner.
Je pense que vous devez utiliser "safeAreaLayoutGuide" nouvelle mise à jour dans iOS 11
Apple nous a fourni les API nécessaires pour contourner les zones dangereuses de cet iphone x. Nous faisons cela en utilisant les nouveaux safeAreaLayoutGuide dans notre code safeAreaLayoutGuide