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:

Ajouter un contrôleur de vue enfant à UINavigationController

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