UIPageViewController,实例化ViewControllers与故事板ID,Obje

2019-11-03 18:38发布

我想实现UIPageViewController,我相信,我在最后阶段。 起初UIPageViewController只用一个VC滚动到一个“与众不同”的页面。 现在,我希望它不同ViewControllers之间滚动。 这是我使用的代码:

- (void)viewDidLoad {
    [super viewDidLoad];

    self.vcIdentifiers = @[@"PageContentViewController", @"PageContentViewController1"];


    // Create page view controller
    self.pageViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"PageViewController"];
    self.pageViewController.dataSource = self;

    UIViewController *startingViewController = [self viewControllerAtIndex:0];
    NSArray *viewControllers = @[startingViewController];
    [self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];

    self.pageViewController.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height - 30);

    [self addChildViewController:_pageViewController];
    [self.view addSubview:_pageViewController.view];
    [self.pageViewController didMoveToParentViewController:self];

}

- (PageContentViewController *)viewControllerAtIndex:(NSUInteger)index
{
    if (([self.vcIdentifiers count] == 0) || (index >= self.vcIdentifiers.count)) {
        return nil;
    }


    // Create a new view controller and pass suitable data.
    PageContentViewController *pageContentViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"PageContentViewController"];
    pageContentViewController.titleText = self.pageTitles[index];
    pageContentViewController.pageIndex = index;

    return pageContentViewController;
}

我相信这是在viewControllerAtIndex我需要做出一些改变。 我想这样做的:

PageContentViewController *pageContentViewController = [self.storyboard instantiateViewControllerWithIdentifier:self.vcIdentifiers[index]];

但后来它仍然会初始化PageContentViewController。 所以我的问题是我不知道如何初始化不同ViewControllers。

文章来源: UIPageViewController, instantiating ViewControllers with Storyboard ID, Objective-C