具有多个视图的UIPageViewController

吕克斯

我需要一个动态的UIPageViewController,页面数取决于我数组中项目的数量。

我对此有两种看法。一个用于第一页,另一个用于其他页。它将始终超过2页(我的阵列上有两个项目)。

我正在尝试使用固定值进行测试。但是分页是不正确的。索引不正确。

第一个问题,presentationCountForPageViewController [_vc count]返回nil;

第二个问题,分页不正确。我到达最后一页,第一个视图消失了,因此,如果我返回,则总是转到第二个视图...

请帮忙!

    - (void)viewDidLoad {
        [super viewDidLoad];

        FirstViewController *agenda = (FirstViewController*)[self viewControllerAtIndex:0];
        [_vc addObject:@"FirstViewController"];
        [_vc addObject:@"SecondViewController"];


        self.pageViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"PageViewController"];
        self.pageViewController.dataSource = self;


        NSArray *viewControllers = [NSArray arrayWithObject:agenda];

        [self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];


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

        UIPageControl *pageControlAppearance = [UIPageControl appearanceWhenContainedIn:[UIPageViewController class], nil];
        pageControlAppearance.pageIndicatorTintColor = [UIColor lightGrayColor];
        pageControlAppearance.currentPageIndicatorTintColor = [UIColor darkGrayColor];


    }




- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
{

    NSUInteger index = [_vc indexOfObject:viewController];

    if ((index == 0) || (index == NSNotFound)) {
        return nil;
    }

    index--;

    //notice here I call my instantiation method again essentially duplicating work I have already done!
    return [self viewControllerAtIndex:index];
}

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
{
    NSUInteger index = [_vc indexOfObject:viewController];

    if (index == NSNotFound) {
        return nil;
    }

    index++;
    return [self viewControllerAtIndex:index];
}


#pragma mark - Page View Controller Data Source

- (UIViewController *)viewControllerAtIndex:(NSUInteger)index
{

    if (index == 0){
        FirstViewController *firstController = [self.storyboard instantiateViewControllerWithIdentifier:@"FirstViewController"];

        return firstController;
    }
    else{
        SecondViewController *secondController = [self.storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"];
        return secondController;
    }

}

- (NSInteger)presentationCountForPageViewController:(UIPageViewController *)pageViewController
{
    return [_vc count];
}

- (NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pageViewController
{
    return 0;
}
pbasdf

根据评论/聊天,需要解决一些问题:

  1. 您需要实例化_vc数组
  2. 您需要UIViewController向该数组添加对象,而不是当前使用的字符串
  3. 您需要修改viewControllerBeforeViewControllerviewControllerAfterViewController方法,以从_vc数组返回相关元素,并记住要测试索引是否保持在数组范围之内,以防止滑动到最后一页或第一页(议程)之前。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有多个视图的UIPageViewController

来自分类Dev

UIPageViewController具有多个视图并弹跳

来自分类Dev

具有多个视图和弹跳的UIPageViewController

来自分类Dev

具有多个视图的Durandal小部件

来自分类Dev

具有多个视图的REST资源

来自分类Dev

具有多个ViewBuilder的SwiftUI视图

来自分类Dev

具有多个模型的MVC部分视图

来自分类Dev

Android Viewflipper序列具有多个视图

来自分类Dev

设计具有多个模型的视图

来自分类Dev

iOS 8 NSFetchedResultsController具有多个视图

来自分类Dev

具有多个子视图的约束

来自分类Dev

如何创建具有多个表的视图?

来自分类Dev

修改具有相同 id 的多个视图

来自分类Dev

具有多个部分的表格视图

来自分类Dev

具有多个视图的单个表还是多个表?

来自分类Dev

使用具有多个视图和小模型的主干

来自分类Dev

显示具有多个帧的动画视图的最佳策略是哪种?

来自分类Dev

具有多个表视图的Swift MVC设计

来自分类Dev

ViewController的视图如何具有多个位置状态?

来自分类Dev

Android findViewWithTag用于具有多个标签的视图

来自分类Dev

具有多个参数的ui-sref对子视图无效

来自分类Dev

具有故事板的多个视图中的基本结构NSArrayController

来自分类Dev

具有相同视图名称的多个棱镜模块

来自分类Dev

XIB中具有多个视图的UITableViewCell的registerNib

来自分类Dev

JSON解析到具有多个对象的Android的列表视图

来自分类Dev

具有多个视图类型的Recyclerview彼此通信?

来自分类Dev

如何具有多个HTML表单的单一视图-Django

来自分类Dev

颤振列表视图,具有多个滚动方向

来自分类Dev

代替触发更新具有多个表的视图

Related 相关文章

热门标签

归档