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!

vous ne pouvez pas supprimer l'affichage de base ou de la vue parente. vous pouvez ajouter à votre enfant sur une vue parent. donc, si vous supprimez vue parent, vous obtenez l'erreur EXE_BAD
Je suis en ajoutant le WhiteView comme un enfant(sous -) à la vue principale.

OriginalL'auteur Scott | 2012-03-27