我正在尝试实施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
?
答案 0 :(得分:1)
我使用this template来实现这一目标。 它来自(可能重复的)问题,您可以找到两个有趣的答案there。
修改强>
TL; DR的想法是使用故事板标识符为您的不同视图控制器在需要时使用PageViewControllerDataSource
协议方法实例化它们。