2010-05-15 6 views
3

J'ai un nouveau contrôleur de vue sur l'iPhone que j'appelle en utilisant la ligne de code suivante:vue PresentModalViewController est décalé sans animation

[self presentModalViewController:controller animated:NO]; 

Cela fonctionne très bien si l'animation est, mais je cherche à avoir un interrupteur instantané. Le problème est que lorsque je place l'animation sur NO, toute la vue décale 20px vers la droite (c'est toujours en mode paysage) comme s'il y avait une barre d'état mais en mode portrait!?

Dans cet exemple, l'espace jaune est le nouveau contrôleur de vue.

alt text http://www.james-ingham.info/pics/iphoneshift.png

J'ai essayé dans un nouveau projet et la même chose. C'est peut-être un bug, mais est-ce que quelqu'un a une solution? Merci

Répondre

2

Vous devez vérifier la valeur de la propriété controller.view.frame et vous assurer qu'elle est correcte. Le plus probable, vous remarquerez que la valeur origin.x est 20. Cependant, je suis perplexe quant à la raison pour laquelle le cadre correspond lorsqu'il est animé.

+0

Hmm ... J'ai oublié de mentionner que j'utilise OpenFeint. Peut-être que c'est le problème. J'y reviendrai ... –

+0

Je ne sais pas à quel point c'est hacky mais quand je présente la vue modale, je mets simplement les valeurs d'origine à 0 et cela est résolu. Cependant, cela n'est pas changé ailleurs! Ca marche bien :) –