使用 UIPageViewController 在多个视图控制器之间滑动
Posted
技术标签:
【中文标题】使用 UIPageViewController 在多个视图控制器之间滑动【英文标题】:Swipe between multiple view controllers using UIPageViewController 【发布时间】:2015-02-26 03:45:22 【问题描述】:我的 UIPageViewController 根本不工作。我想要做的是在 UIPageViewController 中切换 2 个视图控制器。我已经在这里遵循了指导方针,但失败了。 Using UIPageViewController with swift and multiple view controllers。第一个视图控制器出现成功,但是当我尝试滑动到第二个视图控制器时,它会抛出此错误消息。我已经正确设置了所有标识符。
fatal error: unexpectedly found nil while unwrapping an Optional value
从这里开始
func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController?
let identifier = viewController.restorationIdentifier
let index = self.identifiers.indexOfObject(identifier!) // error message here
//if the index is 0, return nil since we dont want a view controller before the first one
if index == 0
return nil
//decrement the index to get the viewController before the current one
self.index = self.index - 1
return self.viewControllerAtIndex(self.index)
Main.storyboard
源码:https://github.com/datomnurdin/RevivalxSwiftPageViewController
【问题讨论】:
今日名言:“我的 UIPageViewController 根本不工作”。一样的…… 【参考方案1】:尝试访问视图控制器的 restorationIdentifier 时发生崩溃。您使用 !
解包它,但它是 nil ;作为第一个解决方案,在情节提要中设置 restorationIdentifier。
一般情况下,仅在您确定它不是 nil 的情况下使用
!
解包值(通过在前面添加 if 语句)。
【讨论】:
它对我有用。将在您的 GitHub 存储库上提交 PR 以显示结果。 刚刚在你的 repo 上提交了 PR。在 Xcode 6.2 (b. 6C131e) 下测试。以上是关于使用 UIPageViewController 在多个视图控制器之间滑动的主要内容,如果未能解决你的问题,请参考以下文章
在 UIPageViewController 中使用时的 PageControl backgroundColor
使用 UIPageViewController 创建网格/地图
使用 Swift 在 UIPageViewController 子视图之间传递数据