Child View Controller verschiebt sich nach unten

Ich habe einen TutorialsViewController, dem ein PageViewController programmgesteuert hinzugefügt wurde als:

- (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]; 
}

Und ich füge TutorialsContentViewController mit den Delegate-Methoden zum PageViewController hinzu:

- (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;
}

Nun, wenn ich dies im Simulator ausführe, kann ich sehen, dass alles gut funktioniert, nur dass der nächste untergeordnete Ansichts-Controller über der Statusleiste zu sein scheint und sich beim Scrollen nach unten verschiebt.

Ich habe versucht, self.automaticallyAdjustsScrollViewInsets = false im Parent View Controller zu setzen, aber die untergeordnete Ansicht verschiebt sich immer noch nach unten. Der untergeordnete Ansichts-Controller verfügt über eine ImageView-Komponente, für die anfangs die Bedingungen "Vorlauf", "Nachlauf", "Oben" und "Unten" auf "0" gesetzt sind (dies bewirkt die Verschiebung).

Wenn ich das Bild horizontal und vertikal zentriere und ihm feste Höhe und Breite gebe, funktioniert es trotzdem. Aber ich möchte, dass das Bild den Child-View-Controller vollständig ausfüllt.

Wie löse ich dieses Problem mit der Bildverschiebung? Bitte helfen Sie.

Vielen Dank

Antworten auf die Frage(4)

Ihre Antwort auf die Frage