获取页面视图以在最后一个屏幕上弹出 [英] Get Page View to pop off on last screen

查看:75
本文介绍了获取页面视图以在最后一个屏幕上弹出的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在我的应用程序中实现了一个功能性的教程介绍,但是当我最后一次滑动屏幕时,似乎无法弹出页面视图.我以为dismissViewControllerAnimated:completion:可以工作

I have a functional tutorial intro implemented into my app, but i just can't seem to get the page view to pop off when i swipe the screen for the last time. I thought dismissViewControllerAnimated:completion: would work

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
{
    NSUInteger index = ((PageContentViewController*) viewController).pageIndex;

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

    index++;
    if (index == [self.pageTitles count]) {
        [self.pageViewController dismissViewControllerAnimated:YES completion:nil];
    }
    return [self viewControllerAtIndex:index];
}

我想出了如何使它消失,但是到最后一页时它就消失了.我希望它显示最后一页,然后在用户再次在最后一页上向右滑动时消失.

I figured out how to get it to go away, but it goes away right when it gets to the last page. I want it to show the last page and then go away when the user swipes right again on that last page.

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
{
    NSUInteger index = ((PageContentViewController*) viewController).pageIndex;

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

    index++;
    if (index == [self.pageTitles count]) {
        [self.pageViewController.view removeFromSuperview];
    }
    return [self viewControllerAtIndex:index];
}

推荐答案

页面视图控制器是您的主要viewcontrollers子视图控制器,这是删除childViewController的正确方法:

Page View Controller is your main viewcontrollers child view controller, this is the correct way to remove childViewController:

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
{
    NSUInteger index = ((PageContentViewController*) viewController).pageIndex;

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

    index++;

    if (index == [self.pageTitles count]) {
        [pageViewController willMoveToParentViewController:nil];  // 1
        [pageViewController.view removeFromSuperview];            // 2
        [pageViewController removeFromParentViewController];      // 3   
    }

    return [self viewControllerAtIndex:index];
}

这篇关于获取页面视图以在最后一个屏幕上弹出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆