3

ウォークスルー画面を作成するためにプロジェクトにを追加しました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;
}

私が理解できるのは、でセットアップを行う方法ですViewDidLoadEXC_BAD_ACCESS私は私にエラーを与えるこのようなことを試しました:

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.dataSource = self;

    WalktroughScreenPageViewController *ic = [self viewControllerAtIndex:0];

    [self setViewControllers:@[ic] direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:nil];
}

誰かが私を正しい方向に向けることができますか?

4

0 に答える 0