UIPageViewController和不同的视图控制器

时间:2015-05-25 13:09:55

标签: ios objective-c uipageviewcontroller

我正在尝试实施UIPageViewController。我以前做过这个,但在分页时使用相同的UIViewController并更改图像等。我想现在在不同的UIViewController之间进行分页。我正在尝试根据包含UIViewController的情节提要ID的数组中的内容来编写创建UIViewControllers的方法。例如,我有这个数组:

self.controllerIdentifiers=[NSArray arrayWithObjects:@"ViewControllerTypeA",@"ViewControllerTypeB", nil];

现在尝试实施:

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
{
    if (self.controllerIndex==0) return nil;

    self.controllerIndex--;
    NSString *id = self.controllerIdentifiers[self.controllerIndex];

    //If I knew the controller type I would do something like this..

    ViewControllerTypeA *typeA = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewControllerTypeA"];

    return typeA;
}

问题是我不知道如何告诉代码它是什么类型的UIViewController。我是否需要为每个可能的索引设置一些逻辑,然后以这种方式启动UIViewController

1 个答案:

答案 0 :(得分:1)

我使用this template来实现这一目标。 它来自(可能重复的)问题,您可以找到两个有趣的答案there

修改
TL; DR的想法是使用故事板标识符为您的不同视图控制器在需要时使用PageViewControllerDataSource协议方法实例化它们。