XcodeプロジェクトをPageViewControllerとして設定することは、これを実現する1つの方法ですが、既存のストーリーボード内にPageViewControllerを含めたい場合は、これも行うことができます。
PageViewControllerシーンをストーリーボードにドラッグアンドドロップしてセグエを接続すると、そのPageViewControllerにプッシュできます。ただし、ストーリーボードには、PageViewControllerを適切に設定するためのバグがいくつかあるようです。たとえば、デリゲートとデータソースを接続することはできません。
これを回避する簡単な方法は、initメソッドにデリゲート/データソースを接続することです。
- (instancetype) initWithCoder:(NSCoder *)aDecoder
{
if(self = [super initWithCoder:aDecoder])
{
self.delegate = self;
self.dataSource = self;
}
return self;
}
これにより、もちろんデータソースとデリゲートをPageViewControllerにする場合、デリゲートメソッドとデータソースメソッドが適切に呼び出されます。これを設定したら、ビューがロードされるときにViewControllerがあることを確認する必要があります。これは、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で開始され、必要に応じてデータソースとデリゲートメソッドの呼び出しが開始されます。