2012-02-12 5 views
4

J'ai essayé ce qui suit et rien ne fonctionneUIPageViewController et le paysage

NSDictionary *pageViewOptions = [NSDictionary dictionaryWithObjectsAndKeys:UIPageViewControllerOptionSpineLocationKey, [NSNumber numberWithInteger:UIPageViewControllerSpineLocationMid],nil]; 
NSLog(@"pageViewOptions :%@",pageViewOptions);  

self.pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:pageViewOptions];  
NSLog(@"spineLocation :%d",self.pageViewController.spineLocation); 

le NSLog à pageViewOptions est 2, NSLog à spineLocation est 1. Cela me conduit le mur, tout ce que je veux faire est initialiser avec la colonne vertébrale au milieu. Il s'initialise toujours à gauche. l'application est initialisée dans le paysage, mais seulement après la rotation de l'appareil 180 degrés la méthode "- (UIPageViewControllerSpineLocation) pageViewController: (UIPageViewController *) pageViewController spineLocationForInterfaceOrientation: (UIInterfaceOrientation) orientation" fonctionne et puis je reçois colonne vertébrale au milieu. Quelqu'un pourrait-il nous éclairer là-dessus? J'ai cherché partout une réponse.

tout ce que je veux faire est initialisez dans le paysage avec une colonne vertébrale au milieu

Répondre

8

Essayez d'utiliser le paramètre « Options »:

NSDictionary *options = (UIInterfaceOrientationIsLandscape(self.interfaceOrientation)) ? [NSDictionary dictionaryWithObject: [NSNumber numberWithInteger:UIPageViewControllerSpineLocationMid] forKey: UIPageViewControllerOptionSpineLocationKey] : nil; 

self.pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:options]; 

... 

Et ne pas oublier d'initialiser 2 vue contenu contrôleurs :

NSArray *viewControllers = [NSArray arrayWithObjects:contentViewController1, contentViewController2, nil]; 

[self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil]; 
Questions connexes