There are 15 viewcontrollers in my App.I want to swipe them horizontally. I have added all these view controllers in uipageviewcontroller(I have written this code in my first viewcontroller). Each of the 15 viewcontrollers contains buttons to go to the remaining all viewcontrolers.so How could I jump to these viewcontrollers inside pageviewcontroller?,so that I can not come outside of horizontal swipe.
This is my code.Currently I have added three viewcontrollers in uipageviewcontroller.
This is what I have written in Appdelegate.
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property (nonatomic, strong) UIPageViewController *pageViewController;
@property (nonatomic, strong) NSArray *contentViewControllers;
This is my viewcontroller.m (i.e. initial viewcontroller).
APP_DELEGATE.pageViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"PageView"];
APP_DELEGATE.pageViewController.dataSource = self;
UIViewController *init = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewController"];
FirstViewController *first = [self.storyboard instantiateViewControllerWithIdentifier:@"FirstViewController"];
secondViewController *second = [self.storyboard instantiateViewControllerWithIdentifier:@"secondViewController"];
thirdViewController *third = [self.storyboard instantiateViewControllerWithIdentifier:@"thirdViewController"];
APP_DELEGATE.contentViewControllers = [NSArray arrayWithObjects:init,first,second,third,first,nil];
[APP_DELEGATE.pageViewController setViewControllers:@[first] direction:UIPageViewControllerNavigationDirectionReverse animated:NO completion:nil];
[self addChildViewController:APP_DELEGATE.pageViewController];
[self.view addSubview:APP_DELEGATE.pageViewController.view];
[APP_DELEGATE.pageViewController didMoveToParentViewController:self];
self.view.backgroundColor = [UIColor colorWithRed:(248.0/255.0) green:(248.0/255.0) blue:(248.0/255.0) alpha:1.0];
}
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController
viewControllerBeforeViewController:(UIViewController *)viewController {
NSUInteger index = [APP_DELEGATE.contentViewControllers indexOfObject:viewController];
if (index == 1) {
return nil;
}
return APP_DELEGATE.contentViewControllers[index - 1];
}
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController
viewControllerAfterViewController:(UIViewController *)viewController {
NSUInteger index = [APP_DELEGATE.contentViewControllers indexOfObject:viewController];
if (index >= APP_DELEGATE.contentViewControllers.count - 1) {
return nil;
}
return APP_DELEGATE.contentViewControllers[index + 1];
}
This is my secondViewcontroller.m
- (IBAction)moveToFirstButtonAction:(id)sender {
FirstViewController *fvc = [APP_DELEGATE.contentViewControllers objectAtIndex:1];
fvc.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentViewController:fvc animated:YES completion:nil];
}
Using this method I jump to the firstViewcontroller. But I come out of horizontal swipe. i.e. horizontal swipe will not work then.