我在一个容器中有一个UIPageViewController,它应该至少显示三个页面;最多显示六个页面。在PageViewController出现之前,页面的数量将由用户决定。
从更大的角度来看,我正在尝试创建一个项目管理应用程序,该应用程序允许创建一个敏捷的票据创建和管理系统。PageVC应该翻转3到6列,这取决于用户想要与该项目一起进行的列的数量。例如,如果是一个简单的项目,它们可以只有三个列:“未分配”、“已分配”和“完成”。例如,更复杂的项目可以有5列,命名为:“待办事项”、“问题”、“进行中”、“评审”、“完成”。这些列中的每一列在PageVC中都有自己的ViewController。
这是我的数据模型的样子,为了了解我从哪里获得列数(项目属性名为"projectColumnCount"):-

发布于 2016-08-16 14:00:49
您可以在Swift中使用以下ObjectiveC概念。
建议先创建一个内容视图控制器,然后使用Pageviewcontroller委托方法创建其他控制器。
您可以检查以下Pageviewcontroller的委托方法
Pageviewcontroller的委托方法如下所示。
- (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的实例
- (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数组。
[self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];https://stackoverflow.com/questions/38967340
复制相似问题