plusieurs ViewControllers (containerView? childView? exemple de viewController?)
J'ai besoin d'avoir une nouvelle vue(w/ViewController) ajoutées sur le dessus de l'autre. L'utilisateur interagit avec ce nouveau point de vue pour un moment, et puis je veux le supprimer. Dans une ancienne version de Xcode, j'ai pu ajouter en tant que sous-vue. Maintenant, je reçois un EXC_BAD_ACCESS erreur.
Je ne veux pas que l'ajout de la visualisation comme un modal. J'ai besoin de voir l'arrière-plan d'origine par le biais de l'ajout de la visualisation. J'ai lu beaucoup de choses sur la nouvelle coutume containerViews, addChildView, & presentView. Je ne vois pas ce que l'une d'elles est la réponse claire.
Voici le vieux code qui fonctionnait avant
Action dans les principaux ViewController:
-(IBAction)showWhiteView:(id)sender
{
WhiteViewController *whiteView = [[WhiteViewController alloc] initWithNibName:@"WhiteViewController" bundle:nil];
[self.view addSubview:whiteView.view];
}
Action dans l'ajout de la visualisation de l'enlever:
-(IBAction)removeView:(id)sender
{
[self.view removeFromSuperview];
}
Merci pour votre aide.
Peut-être un EXEMPLE VISUEL aidera à expliquer, disons que la vue principale est un océan, d'animation avec les vagues et les nuages en mouvement contrôlées par MainView Contrôleur. L'utilisateur tape quelque chose et je veux ajouter un bateau(WhiteView) à partir de la vue principale. Je veux que l'utilisateur d'interagir avec le bateau: appuyez ici la voile s'ouvre, appuyez sur y le point d'ancrage des gouttes, etc. (besoin de l'méthodes de la WhiteViewController) par la suite je veux la sortir le bateau de l'océan.
Merci Tim - Nouveau code ajouté:
-(IBAction)showWhiteView:(id)sender
{ WhiteViewController *whiteView = [[WhiteViewController alloc] initWithNibName:@"WhiteViewController" bundle:nil];
[self addChildViewController:whiteView];
[whiteView didMoveToParentViewController:self];
[self.view addSubview:whiteView.view]; }
et à l'intérieur de la WhiteViewController à supprimer:
-(IBAction)removeView:(id)sender
{ [self.view removeFromSuperview];
[self removeFromParentViewController]; }
Je suis impatient de toute autre suggestion à faire de notre mieux.
Merci à tous!
Je suis en ajoutant le WhiteView comme un enfant(sous -) à la vue principale.
OriginalL'auteur Scott | 2012-03-27
Vous devez vous connecter pour publier un commentaire.
Voir la réponse ici concernant UIViewController de confinement. J'ai mis en place un exemple de projet sur UIViewController de confinement ici: http://github.com/toolmanGitHub/stackedViewControllers
Espère que cette aide.`
Tim
Tim, j'ai un problème connexe. J'essaie d'avoir mon enfant-vue-contrôleur message de la mère. J'ai essayé une adaptation de votre "[(ViewController *)auto.parentViewController swapViewControllers];" à partir de votre code d'exemple. Il continue à me dire "Non visible @interface pour "UIViewController" déclare le sélecteur 'myMethod'" j'ai importé le parent viewcontroller. Toutes les suggestions?
assurez-vous que l' .h de fichier pour votre parent-vue-contrôleur contient la déclaration de 'myMethod'. Et puis aussi assurez-vous que le (ViewController *) est en fait la vue parent nom du contrôleur que vous importez.
C'est tout. Une fois de plus, vous avez sauvé la journée. Merci!!!!
OriginalL'auteur timthetoolman
ce que j'ai compris de votre question, c'est que vous voulez ajouter une sous-vue à un superview, et qui doivent être interactable droit?
de sorte que vous pouvez le faire en suivant les étapes.
Et de le retirer effectuez les opérations suivantes
N'oubliez pas de connecter la vue nouvellement ajoutée.
de l'essayer.
OriginalL'auteur iLearner