Настройка анимации скручивания страницы с помощью UIPageViewController

Я новичок в iOS и использую UIPageViewController. Вот мой код:

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController 
{
 firstVC *first1 = [[firstVC alloc] initWithNibName:@"firstVC" bundle:nil]; return first1; 
}


- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController { 
secondVC *second1 = [[secondVC alloc] initWithNibName:@"secondVC" bundle:nil]; return second1;
} 




- (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed { NSArray *viewControllers = nil; viewControllers = [NSArray arrayWithObjects:first,second, nil]; [self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerSpineLocationMid animated:NO completion:NULL]; 
} 



-(UIPageViewControllerSpineLocation)pageViewController:(UIPageViewController *)pageViewController spineLocationForInterfaceOrientation:(UIInterfaceOrientation)orientation { 
NSArray *viewControllers = nil; viewControllers = [NSArray arrayWithObjects:second, first, nil]; [self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerSpineLocationMid animated:YES completion:NULL]; return UIPageViewControllerSpineLocationMid; 
}




 - (void)viewDidLoad { [super viewDidLoad]; [self.navigationController setNavigationBarHidden:NO]; self.navigationController.navigationBar.tintColor = [UIColor blackColor]; self.title = @"DEMO"; NSDictionary *options = [NSDictionary dictionaryWithObject: [NSNumber numberWithInteger:UIPageViewControllerSpineLocationMin] forKey: UIPageViewControllerOptionSpineLocationKey]; self.pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl navigationOrientation:UIPageViewControllerSpineLocationMid options:options]; self.pageViewController.delegate = self; self.pageViewController.dataSource = self; first = [[firstVC alloc] initWithNibName:@"firstVC" bundle:nil]; second = [[secondVC alloc] initWithNibName:@"secondVC" bundle:nil]; NSArray *viewControllers = [NSArray arrayWithObjects:first,second,nil]; [self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerSpineLocationMid animated:NO completion:nil]; [self addChildViewController:self.pageViewController]; [self.view addSubview:self.pageViewController.view]; self.modalPresentationStyle=UIModalPresentationCurrentContext; [self.pageViewController didMoveToParentViewController:self]; CGRect pageViewRect = self.view.bounds; pageViewRect = CGRectInset(pageViewRect, 20.0, 20.0); self.pageViewController.view.frame = pageViewRect; self.view.gestureRecognizers = self.pageViewController.gestureRecognizers; self.pageViewController.doubleSided=YES; } 

Он загружает двусторонние страницы в обеих ориентациях, но возникает проблема, когда я прокручиваю страницу, и отображается только один вид. Я хочу страничную анимацию. Пожалуйста помоги. Заранее спасибо за помощь и поддержку.


person Bala krishna    schedule 30.01.2013    source источник


Ответы (1)


где вы инициализируете свой UIPageViewController?

в момент инициализации вы ДОЛЖНЫ определить стиль перехода, поскольку это свойство доступно только для чтения.

Код должен выглядеть так;

   self.pageViewController = [[UIPageViewController alloc]
                             initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl
                             navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal 
                             options:nil];
person melaka    schedule 26.04.2013