Ajouter un contrôleur de vue enfant à UINavigationController
J'essaye d'ajouter un enfant de-vue-contrôleur à un UIViewController
contenues dans un UINavigationController
avec ce code:
- (void)buttonTapped:(id)sender
{
MyChildController *viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"MyChild"];
[self addChildViewController:viewController];
[self.view addSubview:viewController.view];
[viewController didMoveToParentViewController:self];
viewController.view.alpha = 0.0f;
[UIView animateWithDuration:0.4 animations:^{
viewController.view.alpha = 1.0f;
}];
}
Mais c'est le résultat:
Comme vous pouvez le voir le UINavigatioBar
et la UIToolbar
sont toujours au top de l'enfant-vue-contrôleur. Comment puis-je mettre l'enfant-vue-contrôleur sur le dessus de tous? J'ai déjà essayé de remplacer le code par:
[self.navigationController addChildViewController:viewController];
[self.navigationController.view addSubview:viewController.view];
[viewController didMoveToParentViewController:self.navigationController];
Mais de cette façon la viewDidAppear:animated
de la viewController
n'est pas appelée, je ne sais pas pourquoi.
source d'informationauteur Fred Collins
Vous devez vous connecter pour publier un commentaire.
Dans votre premier point de vue contrôleur de, faire quelque chose comme ceci:
Ensuite dans votre seconde vue-contrôleur, ajouter de la lecture pour votre imageview:
@Sam'commentaire est correct. Vous devez appeler
beginApperanceTransition:animated:
etendAppearanceTransition
pourviewDidAppear
d'être déclenchée. La raison pour laquelleUINavigationController
n'appelle pasviewDidAppear
lorsque vous ajoutez un enfant de-vue-contrôleur est parce qu'il a remplacé son conteneur des modes de composition pour prévenir le programmeur de l'ajout d'un enfant-vue-contrôleur dans des endroits étranges. Dans votre cas, il ne veut pas de votre enfant en vue de couvrir la barre de navigation. L'utilisation correcte d'une manette de navigation est d'avoir des enfants apparaissent sous la barre de navigation. Néanmoins, vous pouvez toujours la force de ce non-standard de l'INTERFACE utilisateur manuellement en disant à l'enfant quand il est apparu et quand il a fini de figurant.Ajouter un enfant à UINavigationController
Retirer un enfant à partir de UINavigationController
@Pwner's réponse Swift version:
Ajouter un enfant à UINavigaitonController
Retirer un enfant à partir de UINavigationController