我们可以向UIPageViewController添加多个viewControllers吗?

时间:2012-10-17 16:05:01

标签: objective-c xcode4.3 uipageviewcontroller

我正在寻找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只有一个元素,它就可以工作。 self.pageViewController.viewControllers将填充该1个元素。

如果viewControllers有多个元素,那么事情就不再起作用了。 self.pageViewController.viewControllers将有空数组。

我想知道为什么。我是UIPageViewController的新手。如果你只能填写一个UIViewController,为什么要求一个数组?

1 个答案:

答案 0 :(得分:2)

如果您一次只显示一个页面,则有一个视图控制器。如果一次显示两个页面,则有两个视图控制器。

顺便说一句,我的书教你开始使用Page View Controller:

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

但是我还没有为iOS 6和新的滚动转换风格更新它。