0

私は UIPageViewController を探していて、これを見つけました: http://www.ioslearner.com/implementing-uipageviewcontroller-programatically-without-storyboarding/

疑わしいです。最初に1つのviewControllerの配列を挿入するのはなぜですか。

そこで、2-10 を挿入するプログラムを作成しました。最初に1つのviewControllerを挿入するだけで、プログラムは機能します。しかし、2-10 を挿入しようとすると、うまくいきません。

   [self.containerView addSubview:self.pageViewController.view];
    self.pageViewController.view.frame = self.containerView.bounds;

    NSMutableArray * arrayOfControllers=[NSMutableArray array];
    for (int i = 0; i<1 ; i++) { //if I set this into for (int i = 0; i<10 ; i++) { instead it wouldn't work
        BlankImageViewController *contentViewController = [[BlankImageViewController alloc] init];
        contentViewController.view.frame = self.containerView.bounds;
        [arrayOfControllers addObject:contentViewController];
        //contentViewController.labelContents = [self.modelArray objectAtIndex:0];
    }

    NSArray *viewControllers = @[arrayOfControllers.lastObject];
    viewControllers = [NSArray arrayWithArray:arrayOfControllers]; //If this line is commented it works
    [self.pageViewController setViewControllers:viewControllers
                                      direction:UIPageViewControllerNavigationDirectionForward
                                       animated:YES
                                     completion:nil];

viewControllers に要素が 1 つしかない場合は機能します。self.pageViewController.viewControllers はその 1 つの要素で埋められます。

viewController に複数の要素がある場合、機能しなくなります。self.pageViewController.viewControllers には空の配列があります。

なぜだろう。UIPageViewController は初めてです。UIViewController を 1 つしか満たすことができない場合、なぜ配列を要求するのでしょうか?

4

1 に答える 1

2

一度に 1 ページしか表示しない場合は、View Controller が 1 つあります。一度に 2 つのページを表示している場合は、2 つのビュー コントローラーがあります。

ところで、私の本では Page View Controller を使い始める方法を教えています。

http://www.apeth.com/iOSBook/ch19.html#_page_view_controller

しかし、iOS 6 と新しいスクロール トランジション スタイルにはまだ更新していません。

于 2012-10-17T16:26:39.773 に答える