避免用户使用 UIPageViewController 滚动到索引 -1 和 2
Posted
技术标签:
【中文标题】避免用户使用 UIPageViewController 滚动到索引 -1 和 2【英文标题】:Avoid user to scroll to index -1 and 2 with UIPageViewController 【发布时间】:2015-12-23 17:40:25 【问题描述】:我有一个带有 2 个 VC(索引 0 和 1)的 UIPageViewController,我想避免用户在第一个视图(索引 0)上向右滚动并在第二个视图(索引 1)上向左滚动.
有谁可以告诉我该怎么做?
谢谢!
【问题讨论】:
不清楚您要达到的目标。请详细说明.. @iProgrammer 我在 pageViewController 上有 2 个视图。我希望如果用户在第一个视图上,他将无法向右滑动(只是向左滑动到第二个视图),如果他在第二个视图上,他将无法滑动向左(就在右侧 - 第一个视图)。现在清楚了吗? 【参考方案1】:试试这些数据源方法:
@SWIFT 版本
public func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController?
var index = viewControllers.indexOf(viewController)
if index == 0 || index == NSNotFound
return nil
index--
return viewControllerAtIndex(index)
public func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController?
var index = viewControllers.indexOf(viewController)
if index == NSNotFound
return nil
index++
if index == viewControllers?.count
return nil
return viewControllerAtIndex(index)
@OBJC 版本
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
NSInteger index = [viewControllerArray indexOfObject:viewController];
if ((index == NSNotFound) || (index == 0))
return nil;
index--;
return [viewControllerArray objectAtIndex:index];
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
NSInteger index = [viewControllerArray indexOfObject:viewController];
if (index == NSNotFound)
return nil;
index++;
if (index == [viewControllerArray count])
return nil;
return [viewControllerArray objectAtIndex:index];
【讨论】:
用户可以滚动,它只是在侧面显示黑色视图,我不想要黑色视图,我希望它不能在这一侧滚动【参考方案2】:您可以使用 UIPageViewcontroller 的 Index 值来实现这一点。不过这很痛苦……让你检查一下。
【讨论】:
以上是关于避免用户使用 UIPageViewController 滚动到索引 -1 和 2的主要内容,如果未能解决你的问题,请参考以下文章
OptionalBinding 使用 Guice 避免用户绑定