El controlador de vista infantil se desplaza hacia abajo
Tengo un TutorialsViewController que tiene un PageViewController agregado programáticamente 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 al PageViewController usando los métodos delegados:
- (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 el simulador, puedo ver que todo funciona bien, solo que el siguiente controlador de vista secundario parece estar por encima de la barra de estado y se desplaza hacia abajo a medida que me desplazo.
He intentado self.automaticallyAdjustsScrollViewInsets = false en el Controlador de vista principal, pero la vista secundaria todavía se desplaza hacia abajo. El controlador de vista secundario tiene un ImageView que tiene restricciones iniciales, finales, superiores e inferiores establecidas en 0 inicialmente (esto provoca el cambio).
Sin embargo, cuando centro la imagen horizontal y verticalmente y le doy altura y ancho fijos, funciona bien. Pero quiero que la imagen llene completamente el controlador de vista infantil.
¿Cómo resolver este problema de cambio de vista? Por favor ayuda.
Gracias.