【问题标题】:Multiple UIPageViewController's多个 UIPageViewController 的
【发布时间】:2014-12-03 08:12:34
【问题描述】:

我使用UINavigationControllerUIPageViewController(第一个pvc)作为根控制器。 在这个 pvc 实例中,我有多个视图,我可以在其中滚动浏览。这一切都很好。

然后我选择从其中一个视图中推送,我向下钻取到具有第二个 pvc 的级别。当我使用第二个 pvc 滚动并到达序列末尾时,我会自动继续使用第一个 UIPageViewController 滚动。

我的问题是如何在第二个 pvc 滚动的那一刻禁用手势并锁定第一个 pvc 的滚动?

这是导航控制器堆栈

/////--UINavigationController

/////----------UIPageViewController (first instance of pvc)

/////---------------UITableViewController [ TV01 ] push here to second pvc

/////---------------UITableViewController [ TV02 ]

/////---------------UITableViewController [ TV03 ]

/////---------------------UIPageViewController (second instance of pvc)

/////---------------------------UIViewController 

/////---------------------------UIViewController

/////---------------------------UIViewController (is scrolling to TV02)

【问题讨论】:

  • yusuf.yazilim@gmail.com 用土耳其语向我发送邮件。 :)

标签: ios objective-c xcode uinavigationcontroller uipageviewcontroller


【解决方案1】:

我的问题有一个解决方案,我想在这里发布我的答案。主要的 UIPageViewController 使用一些 UIScrollView 对象来处理滚动(至少对于 transitionStyle UIPageViewControllerTransitionStyleScroll)。在推送新的UIPageViewController 之前,我已禁用此 UIPageViewController 的滚动选项。因此,您始终可以使用一个 UIPageViewController 进行滑动。

您可以通过控制器的子视图(pageViewController.view.subviews)迭代来获取它。

-(void)setScrollEnabled:(BOOL)enabled forPageViewController:(UIPageViewController*)pageViewController{
    for(UIView* view in pageViewController.view.subviews){
        if([view isKindOfClass:[UIScrollView class]]){
            UIScrollView* scrollView=(UIScrollView*)view;
            [scrollView setScrollEnabled:enabled];
            return;
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-05
    • 1970-01-01
    • 2014-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多