ios - UIPageViewControllerDelegate - iOS 5 的 willTransitionToViewControllers 替代品

标签 ios delegates uipageviewcontroller

我正在使用

- (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 的引用,请使用 UIPageViewControllerviewControllers 属性。

MyContentViewController *myVC = (MyContentViewController*)[[self.pageViewController viewControllers] objectAtIndex:0];

关于ios - UIPageViewControllerDelegate - iOS 5 的 willTransitionToViewControllers 替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18183435/

相关文章:

objective-c - 本地通知,当应用程序处于前台时,applicationIconBadgeNumber保留

objective-c - 'delegate' 属性可以支持多个协议(protocol)吗?

c# - RelayCommand 和委托(delegate),尝试理解委托(delegate)

ios - 如何在 uipageviewcontroller swift 中转换时隐藏导航栏

ios - UIPageViewController 旋转怪异

ios - 在 Xcode 中拥有多个产品变体的最佳方式是什么?

iphone - 无法设置文本标签单元格

ios - 使用超链接 react native iOS 图像

ios - Swift(一些)UITableViewDelegate 方法不执行

ios - 使用按钮将 childViewController 加载到 scrollview parent