J'ai un contrôleur de vue principal qui s'occupe du dessin pour ma vue 2D opengl ES et un boutonManager de contrôleur de vue enfant qui détermine les boutons à charger et à dessiner lors du lancement.
Une fois que l'utilisateur a appuyé sur l'un de ces boutons, ce contrôleur de vue est créé et sa vue est supposée apparaître, mais la vue n'est jamais ajoutée mais a été testée pour fonctionner. Voici mon code du contrôleur de la vue principale:
buttonManager=[[ButtonManager alloc] init];
[self addChildViewController:buttonManager];
[self.view addSubview:buttonManager.view];
et voici mon code pour lancer cette vue:
-(void)launchStopDialog: (NSString*)stopName {
NSLog(@"stopdialog should be launched.");
if (stopDialogController == nil)
stopDialogController = [[StopDialogController alloc] initWithNibName:@"StopDialog" bundle:nil];
if (stopDialogController)
[stopDialogController presentWithSuperview:self.view.superview withStopName:stopName];
}
Pour accéder au contrôleur de vue parent, vous pouvez utiliser self.parentViewController
. Une fois que vous l'avez, vous pouvez accéder à sa vue simplement en utilisant sa propriété view
Note à ceux qui utilisent iOS 5.x +
self parentViewController
renvoie maintenant nil
. Vous devrez maintenant utiliser self presentingViewController
pour obtenir le même résultat. Consultez ce billet de blog pour plus d'informations et des solutions supplémentaires pour la mise à niveau de votre base de code: http://omegadelta.net/2011/11/04/oh-my-god-they-killed-parentviewcontroller/
c'est ce qui a fonctionné pour moi
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
NSString * segueName = segue.identifier;
if ([segueName isEqualToString: @"child-view"]) {
ChildViewController * childViewController = (ChildViewController *) [segue destinationViewController];
[self addChildViewController:childViewController];
}
}
Maintenant, après avoir tué le
self.parent
vous pouvez utiliser
override func didMove(toParentViewController parent: UIViewController?)
{
}
Pour ce faire, j'utilise l'approche par blocs Objective C. Jetez un coup d’œil à ce tutoriel sur les blocs . https://www.youtube.com/watch?v=FS4JAy1Wy3w