2010-02-17 11 views
1

J'ai 3 contrôleurs de vue. La vue principale (vue du contrôleur1) est affichée en premier. En fonction de la sélection du bouton, la 2ème vue (vue du contrôleur2) est affichée. Il y a plusieurs boutons et un bouton d'accueil sur cette vue. La sélection de ceux-ci affichera la 3ème vue (vue du contrôleur3) avec animation. Sélectionner le bouton home affichera la vue principale (vue controller1 '). Le problème que j'ai est quand j'appuie sur les boutons sur la vue de controller2 pour afficher la vue de controller3, pendant l'animation je vois la vue du controller1 en arrière-plan. Comment puis-je me débarrasser de ça?basculer entre 3 contrôleurs de vue sur l'iphone

+0

Comment affichez-vous vos contrôleurs de vue? Utilisez-vous UINavigationController ou smth else? – Vladimir

+0

Non, je ne l'utilise UINavigationController Dans le délégué de l'application ajouter [fenêtre addSubview: viewController1.view] Ensuite, dans le fichier de mise en œuvre de chaque contrôleur I instancier le contrôleur suivant vue de la NIB et l'ajouter comme sous-vue. – phonydev

Répondre

0

Vous pouvez supprimer la vue du contrôleur1 de la présentation avant la séquence d'animation. Vous devriez le faire dans le cadre de la transition de controller1 à controller2.

[controller1.view removeFromSuperView]; 

Bien sûr, vous devrez l'ajouter à un moment donné.

+0

Je dois avoir cette ligne de code dans le fichier du 2ème contrôleur. Comment est-ce que je me souviens du 1er contrôleur? Dois-je le passer comme argument? Je ne suis pas sûr de savoir comment le faire. – phonydev

+0

Utilisez-vous un bloc d'animation UIView? Si c'est le cas, cela devrait faire partie de ce bloc. Ce qui signifie dans serait dans le premier contrôleur, ou la méthode d'action pour le bouton poussoir. –

1

Il semble que vous souhaitiez utiliser presentModalViewController. Cela ne corrigera probablement pas votre autre problème avec view1 étant visible pendant l'animation. J'essaierais de définir la propriété hidden à utiliser pour view1.