ウォークスルー画面を作成するためにプロジェクトにを追加しましたUIPageViewController
が、ストーリーボードを使用してこれを機能させる方法を理解しているようです。
viewControllerBeforeViewController
最初に、 と の 2 つのデータ ソース メソッドを定義しましたviewControllerAfterViewController
。
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController {
NSUInteger index = [(WalktroughScreenPageViewController *)viewController index];
if (index == 0) {
return nil;
}
index--;
return [self viewControllerAtIndex:index];
}
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController {
NSUInteger index = [(WalktroughScreenPageViewController *)viewController index];
index++;
if (index == 3) {
return nil;
}
return [self viewControllerAtIndex:index];
}
- (WalktroughScreenPageViewController *)viewControllerAtIndex:(NSUInteger)index {
WalktroughScreenPageViewController *childViewController = [[WalktroughScreenPageViewController alloc] init];
childViewController.index = index;
return childViewController;
}
また、下部にドットを表示するために、次の 2 つの方法を追加しました。
- (NSInteger)presentationCountForPageViewController:(UIPageViewController *)pageViewController
{
return 3;
}
- (NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pageViewController
{
return 0;
}
私が理解できるのは、でセットアップを行う方法ですViewDidLoad
。EXC_BAD_ACCESS
私は私にエラーを与えるこのようなことを試しました:
- (void)viewDidLoad
{
[super viewDidLoad];
self.dataSource = self;
WalktroughScreenPageViewController *ic = [self viewControllerAtIndex:0];
[self setViewControllers:@[ic] direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:nil];
}
誰かが私を正しい方向に向けることができますか?