首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在PageViewController中创建数量可变的ViewControllers?

如何在PageViewController中创建数量可变的ViewControllers?
EN

Stack Overflow用户
提问于 2016-08-16 13:40:14
回答 1查看 456关注 0票数 0

我在一个容器中有一个UIPageViewController,它应该至少显示三个页面;最多显示六个页面。在PageViewController出现之前,页面的数量将由用户决定。

从更大的角度来看,我正在尝试创建一个项目管理应用程序,该应用程序允许创建一个敏捷的票据创建和管理系统。PageVC应该翻转3到6列,这取决于用户想要与该项目一起进行的列的数量。例如,如果是一个简单的项目,它们可以只有三个列:“未分配”、“已分配”和“完成”。例如,更复杂的项目可以有5列,命名为:“待办事项”、“问题”、“进行中”、“评审”、“完成”。这些列中的每一列在PageVC中都有自己的ViewController。

这是我的数据模型的样子,为了了解我从哪里获得列数(项目属性名为"projectColumnCount"):-

EN

回答 1

Stack Overflow用户

发布于 2016-08-16 14:00:49

您可以在Swift中使用以下ObjectiveC概念。

建议先创建一个内容视图控制器,然后使用Pageviewcontroller委托方法创建其他控制器。

您可以检查以下Pageviewcontroller的委托方法

Pageviewcontroller的委托方法如下所示。

代码语言:javascript
复制
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController

{

       NSUInteger index = ((PageContentViewController*) viewController).pageIndex;

    if ((index == 0) || (index == NSNotFound)) {

        return nil;

    }      index--;

    return [self viewControllerAtIndex:index];

}



- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController

{

     NSUInteger index = ((PageContentViewController*) viewController).pageIndex;

    if (index == NSNotFound)

    {

             return nil;

    }

    index++;

   if (index == [arrPage count]) {

        return nil;

    }

    return [self viewControllerAtIndex:index];
}

您可以使用下面的方法创建ContentVC的实例

代码语言:javascript
复制
- (PageContentViewController *)viewControllerAtIndex:(NSUInteger)index
{

    if (([arrPage count] == 0) || (index >= [arrPage
 count])) {
        return nil;
    }
    // Create a new view controller and pass suitable data.
    pageContentViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"PageContentViewController"];
    pageContentViewController.delagate = self;
    pageContentViewController.pageIndex = index;
    pageContentViewController.collselectedType = selectedType;
    return pageContentViewController;
}

你也可以创建contentVC数组并在Pageviewcontroller中进行设置,但它会消耗更多的内存

您可以按照如下方式设置view conteollers数组。

代码语言:javascript
复制
  [self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38967340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档