我正在使用
- (void)pageViewController:(UIPageViewController *)pageViewController willTransitionToViewControllers:(NSArray *)pendingViewControllers
在 UIPageViewController
中跟踪当前可见页面。此方法可从 iOS 6 获得,但我也需要在 iOS 5 中实现此方法,我该怎么做?
我试过
- (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed
但是 previousViewControllers
计数总是一个,所以这没有帮助或者我可能遗漏了什么
最佳答案
当 UIPageViewController
的 spine 位置在 UIPageViewControllerSpineLocationMid
时,它可以显示两个 UIViewController
实例,否则显示一个。
要获取对当前离开 View 的 View Controller 的引用,您可以通过其委托(delegate)中的 previousViewControllers
参数获取它。它将包含对先前显示在屏幕上的 View Controller 的引用。
例如。如果您有在页面 View Controller 的数据源方法中传递的 MyContentViewController 类,您可以获得对在委托(delegate)中离开屏幕的 View Controller 的引用,如下所示:
MyContentViewController *myVC = (MyContentViewController*)[previousViewControllers objectAtIndex:0];
要获取对当前 View Controller 的引用,请使用 UIPageViewController
的 viewControllers
属性。
MyContentViewController *myVC = (MyContentViewController*)[[self.pageViewController viewControllers] objectAtIndex:0];
关于ios - UIPageViewControllerDelegate - iOS 5 的 willTransitionToViewControllers 替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18183435/