Child View Controller cambia de puesto

Tengo un TutorialsViewController que tiene un PageViewController agregado mediante progtwigción como:

- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. // Create page view controller self.pageViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"TutorialsPageViewController"]; self.pageViewController.dataSource = self; TutorialsContentViewController *startingViewController = [self viewControllerAtIndex:0]; NSArray *viewControllers = @[startingViewController]; [self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:nil]; [self addChildViewController:self.pageViewController]; [self.view addSubview:self.pageViewController.view]; [self.pageViewController didMoveToParentViewController:self]; } 

Y agrego TutorialsContentViewController a PageViewController utilizando los methods de delegado:

 - (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController { NSUInteger index = ((TutorialsContentViewController*) viewController).pageIndex; if ((index == 0) || (index == NSNotFound)) { return nil; } index--; return [self viewControllerAtIndex:index]; } - (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController { NSUInteger index = ((TutorialsContentViewController*) viewController).pageIndex; if (index == NSNotFound) { return nil; } index++; if (index == [self.tutorialsArray count]) { return nil; } return [self viewControllerAtIndex:index]; } - (TutorialsContentViewController *)viewControllerAtIndex:(NSUInteger)index { if (([self.tutorialsArray count] == 0) || (index >= [self.tutorialsArray count])) { return nil; } // Create a new view controller and pass suitable data. TutorialsContentViewController *tutorialsContentViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"TutorialsContentViewController"]; tutorialsContentViewController.imageName = [self.tutorialsArray objectAtIndex:index]; tutorialsContentViewController.pageIndex = index; return tutorialsContentViewController; } 

Ahora cuando ejecuto esto en un simulador, puedo ver que todo funciona bien, solo que el siguiente controller de vista secundaria parece estar por encima de la barra de estado y se desplaza hacia abajo a medida que avance.

He intentado auto.automaticallyAdjustsScrollViewInsets = false en el controller de vista principal, pero la vista secundaria sigue desplazándose hacia abajo. El controller de vista secundario tiene una ImageView que tiene restricciones iniciales, posteriores, superiores e inferiores establecidas inicialmente en 0 (esto provoca el cambio).

Cuando centro la image horizontal y verticalmente y le doy altura y ancho fijos, funciona bien. Pero quiero que la image llene por completo el controller de vista secundaria.

¿Cómo resolver este problema de cambio de vista? Por favor ayuda.

Gracias.

Parece que he encontrado la solución, estaba relacionado con las restricciones de layout automático que había configurado. Mi controller de vista hijo contiene una vista de image que lo llena por completo. Entonces doy las siguientes restricciones a la vista de la image:

  1. Centro horizontalmente en contenedor
  2. Centro verticalmente en contenedor
  3. Ancho igual (a la vista del contenedor)
  4. Equal Heights (a la vista del contenedor)

Esto detiene el problema de desplazamiento / parpadeo de la vista.

He resuelto este problema con la ayuda de esta respuesta: iOS 8 UIPageViewController Aplicación de restricciones después de las transiciones al replace en Child PageViewController todas las restricciones en la guía de layout superior para ver.