Dans mon application iOS, ma fenêtre est rootViewController est une barre d'onglet contrôleur avec l'une hiérarchie comme ceci:
- UITabBarController
- UINavigationController 1
- FirstContentController
- UINavigationController 2
- ...
- UINavigationController 3
- ...
- ...
- UINavigationController 1
Lorsque l'utilisateur appuie sur un certain rang, sur FirstContentController
, une instance de SecondController
sera poussé sur sa manette de navigation. SecondContentController
jeux hidesBottomBarWhenPushed
de YES
ses init
méthode et définit self.navigationController.toolbarHidden
de NO
en viewWillAppear:
.
Dans iOS 6, l'utilisateur, appuyez sur la ligne en FirstController
et SecondController
permettrait d'obtenir poussé sur la valeur liquidative du contrôleur. Parce qu'il a hidesBottomBarWhenPushed
ensemble, il serait de masquer la barre d'onglets et, par le moment de la transition de l'animation était complet, SecondController
serait sur l'écran avec sa barre d'outils visible.
Cependant, lors de l'essai de cette sous iOS 7, hidesBottomBarWhenPushed
s'comportement semble avoir changé. Ce que je vois maintenant est:
- la barre d'onglet cache, comme prévu
- la barre d'outils s'affiche, comme prévu
- un écart d'espace inutilisable exactement 49 pixels de haut (la hauteur de la barre d'onglet) apparaît entre la barre d'outils et l'affichage du contenu
L'écart est complètement inutilisable - il ne répond pas à la touche et si j'ai mis en clipsToBounds
OUI sur l'écran principal, rien n'attire l'il. Après beaucoup de débogage et l'examen de la sous-vue des hiérarchies, il ressemble à iOS de redimensionnement automatique mécanisme redimensionne la vue du contrôleur de la vue à une hauteur de 411 (sur l'iPhone 5). Il convient de 460 à atteindre tout en bas de la barre d'outils, mais le système de mise en page semble être compris comme "un fantôme" 49 pixels de haut, la barre d'onglets.
Ce problème se produit uniquement si le point de vue contrôleur dispose d'un onglet de la barre de contrôleur comme l'une de ses conteneurs parents.
Sur iOS 7, comment puis-je avoir la barre d'onglets disparaissent et une barre d'outils de façon transparente pour glisser en place, lorsqu'un nouveau contrôleur est poussé, et ont encore la vue de reprendre la totalité de l'espace entre l'élément de navigation et la barre d'outils?
Mise à JOUR
Après enquête, cela se produit uniquement si SecondController de l' edgesForExtendedLayout
est définie à l' UIRectEdgeNone
. Cependant, à moins que j'ai mis que la propriété d' UIRectEdgeNone
, le point de vue de l'image est trop long et s'étend en dessous de la barre d'outils, où il ne peut pas être vu ou interagi avec.