将 Xcode 项目设置为 PageViewController 是实现此目的的一种方法,但是如果您想在现有的故事板中包含一个 PageViewController,您也可以这样做。
如果您将 PageViewController 场景拖放到情节提要上并连接一个 segue,则可以推送到该 PageViewController。然而,故事板中似乎存在一些错误,用于正确设置 PageViewController,例如,您无法连接委托和数据源。
解决此问题的一种简单方法是在您的 init 方法中简单地连接委托/数据源:
- (instancetype) initWithCoder:(NSCoder *)aDecoder
{
if(self = [super initWithCoder:aDecoder])
{
self.delegate = self;
self.dataSource = self;
}
return self;
}
这将导致您的委托和数据源方法被正确调用,当然假设您希望数据源和委托是 PageViewController。设置完成后,您需要确保在加载视图时存在视图控制器。您可以使用 viewDidLoad 中 PageViewController 类的 setViewControllers 方法来完成此操作:
- (void)viewDidLoad
{
[super viewDidLoad];
[self setViewControllers:@[sweetViewController] direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:^(BOOL finished) {
NSLog(@"Hooray I set my initial viewcontroller for my page view controller");
}];
}
创建 PageViewController 后,它将从您的 sweetViewController 开始,然后根据需要开始调用您的数据源和委托方法。