¿Integrar UIViewController mediante progtwigción?

Tengo una configuration de Storyboard con un UIViewController con una vista de contenedor para que pueda incrustar otro UIViewController dentro de él.

En un determinado escenario, necesito cambiar el controller de vista embedded. En mi storyboard no puedo tener dos segues desde mi vista de contenedor (solo una sola secuencia de inserción). Lo que me lleva a hacerlo programáticamente.

Tengo mi vista de contenedor en mi storyboard sin segundas conexiones incrustadas.

Ahora, desde este punto, ¿cómo incrustar mediante progtwigción el object UIViewController he elegido?

Puede hacer esto de forma programática, a continuación se muestra el método que tomará un valor bool para tomar una decisión qué controller de vista debe agregarse en la vista de contenedor y luego creará una instancia de un object y luego lo agregará a containerView

 - (void)addViewControllerToContainerView:(BOOL)addVC1 { // Get storyboard UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"<name of storyboard>" bundle:[NSBundle mainBundle]]; UIViewController *viewController = nil; if (addVC1) { // get viewController with identifier viewController = [storyBoard instantiateViewControllerWithIdentifier:@"<View Controller 1 Identifier>"]; } else { viewController = [storyBoard instantiateViewControllerWithIdentifier:@"<View Controller 2 Identifier>"]; } // lets add it to container view [viewController willMoveToParentViewController:self]; [self.view addSubview:viewController.view]; [self addChildViewController:viewController]; [viewController didMoveToParentViewController:self]; // keep reference of viewController which may be useful when you need to remove it from container view, lets consider you have a property name as containerViewController self.containerViewController = viewController; } 

Cuando necesite eliminar el controller de vista del controller de vista de contenedor, puede hacer esto

  [self.containerViewController willMoveToParentViewController:nil]; // 1 self.containerViewController.view removeFromSuperView]; [self.containerViewController removeFromParentViewController];//this line is updated as view is removed from parent view cotnroller istead of its viewcontroller is removed from parentViewController self.containerViewController = nil 

Apple docs acerca de los controlleres de vista de contenedor