UIPageViewController与不同的xib(而不是不同的ViewControllers)

时间:2014-11-26 00:05:20

标签: uiviewcontroller xib uipageviewcontroller pageviews

我是编程新手,正在尝试使用xib创建一个PageViewController。

我已经按照在SO上找到的教程向我展示了如何在storyboard中使用不同的UIViewControllers制作一个PageViewController(我已粘贴下面的代码)。这很好,但是,对于我的最终应用程序,我想在xib中使用PageViewController(具有多个不同的xib)。

#import "IntroPages.h"

@implementation IntroPages
{
    NSArray *myViewControllers;
}

-(void)viewDidLoad
{
    [super viewDidLoad];

    self.delegate = self;
    self.dataSource = self;

    UIViewController *p1 = [self.storyboard instantiateViewControllerWithIdentifier:@"1ID"];
    UIViewController *p2 = [self.storyboard instantiateViewControllerWithIdentifier:@"2ID"];
    UIViewController *p3 = [self.storyboard instantiateViewControllerWithIdentifier:@"3ID"];
    UIViewController *p4 = [self.storyboard instantiateViewControllerWithIdentifier:@"4ID"];

    myViewControllers = @[p1,p2,p3,p4];

    [self setViewControllers:@[p1]
               direction:UIPageViewControllerNavigationDirectionForward
                animated:NO completion:nil];

}

-(UIViewController *)viewControllerAtIndex:(NSUInteger)index
{
    return myViewControllers[index];
}

-(UIViewController *)pageViewController:(UIPageViewController *)pageViewController
     viewControllerBeforeViewController:(UIViewController *)viewController
{
    NSUInteger currentIndex = [myViewControllers indexOfObject:viewController];

    --currentIndex;
    currentIndex = currentIndex % (myViewControllers.count);
    return [myViewControllers objectAtIndex:currentIndex];
}

-(UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController {
    NSUInteger currentIndex = [myViewControllers indexOfObject:viewController];

    ++currentIndex;
    currentIndex = currentIndex % (myViewControllers.count);
    return [myViewControllers objectAtIndex:currentIndex];
}

-(NSInteger)presentationCountForPageViewController: (UIPageViewController *)pageViewController {
    return myViewControllers.count;
}

-(NSInteger)presentationIndexForPageViewController: (UIPageViewController *)pageViewController {
    return 0;
}

0 个答案:

没有答案