To use UIPageViewController effectively you would need an UIPageViewControllerDataSource, this will help to display the before and after UIViewController. Here is an simple implementation to get you started:
#import <UIKit/UIKit.h> @interface PYPageViewController : UIPageViewController @property NSMutableArray *pages; @end
#import "PYPageViewController.h"
@interface PYPageViewController()
@end
@implementation PYPageViewController
@synthesize pages;
- (void)viewWillAppear:(BOOL)animated {
[self setDataSource:(id)self]; //Use this class as the data source
self.pages = [[NSMutableArray alloc]initWithCapacity:3];
[self.pages addObject:[self.storyboard instantiateViewControllerWithIdentifier:@"PYRootViewController"]];
[self.pages addObject:[self.storyboard instantiateViewControllerWithIdentifier:@"PYNextViewController"]];
[self.pages addObject:[self.storyboard instantiateViewControllerWithIdentifier:@"PYEndViewController"]];
[self setViewControllers:[NSArray arrayWithObject:pages[0]] direction:UIPageViewControllerNavigationDirectionForward animated:true completion:nil];
[super viewWillAppear:animated];
}
/* UIPageViewControllerDataSource */
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController {
UIViewController *view = nil;
if ([self.pages objectAtIndex:0] != viewController){
for (NSUInteger i = [self.pages count]-1;i > 0 ; i--) {
if ([self.pages objectAtIndex:i] == viewController){
view = [self.pages objectAtIndex:i-1];
break;
}
}
}
return view;
}
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController {
UIViewController * view = nil;
if ([self.pages objectAtIndex:[self.pages count]-1] != viewController){
for (NSUInteger i = 0;i < [self.pages count]-1; i++) {
if ([self.pages objectAtIndex:i] == viewController){
view = [self.pages objectAtIndex:i+1];
break;
}
}
}
return view;
}
@end