2011-06-15 6 views
1

J'ai un comportement vraiment étrange avec le NavigationBar et j'espère que quelqu'un a déjà vu quelque chose comme ça.Comportement étrange avec NavigationBar

screenshot of the situation

J'ai un UIView qui est poussé avec

[self.navigationController pushViewController:cardView animated:NO]; 

et immédiatement lorsque la vue est poussé, j'obtenir le résultat que l'on voit dans la première moitié de l'image ci-dessus. Lorsque je clique sur un bouton qui pousse un contrôleur modalview et que je reviens à la vue d'origine (avec un simple rejet), j'obtiens ce que l'on peut voir dans la seconde moitié de l'image. Lorsque la vue est chargée pour la première fois, elle n'apparaît pas compte de la hauteur de la barre de navigation et la place sous la barre. Pourtant, la vue est plus grande dans le constructeur d'interface, donc il ajuste sa taille en fonction des barres, mais se met toujours sous eux.

Lors du retour de modalview, il a tout simplement poussé le tout vers le bas de la bonne quantité de pixels pour que tout soit visible. C'est comme si quelque chose le forçait à être à l'origine de la fenêtre 0,0 lors du premier chargement et ensuite, en revenant de modalview, il se fixe lui-même.

Je ne sais même pas par où commencer à chercher le problème sur celui-ci.

Editer: Je viens de découvrir que si je mets en animation: OUI dans le code ci-dessus, il le met dans la bonne position après il a glissé dans la vue.

+0

Peut-être que vous définissez le cadre de la vue quelque part après l'affichage de la vue? Dans un autre cas, veuillez fournir du code, où vous initialisez la vue "1". – audience

Répondre

0

Je résolu ce problème en ajoutant

[self.navigationController setNavigationBarHidden:YES]; 
[self.navigationController setNavigationBarHidden:NO animated:YES]; 

au début de viewDidLoad. Cela a provoqué la réinitialisation et le déplacement de la vue. Je ne peux pas vraiment voir une animation en cours cependant. Je pense que la racine du problème réside peut-être dans le fait que je passe du mode portrait au mode paysage et que cela perturbe la barre.