【发布时间】:2015-10-30 15:44:07
【问题描述】:
我希望创建一个与 SnapChat 非常相似的 PageViewController,您可以借此从 UIImagePickerController 滑动到另一个 VC。为此,我有我的初始 VC,它显示 imagepickercontroller,以及我想在这个初始 VC 之后出现的第二个 VC(一个标题 VC)。为了封装我的 PageViewController,我创建了另一个 VC 类(如下所示),我现在将其设置为我的初始 VC,并且我正在尝试处理 PageVC 数据源。
无论出于何种原因,它都无法正常工作,并且出现错误 - “致命错误:在展开可选值时意外发现 nil”。这是因为您不能在 PageVC 中包含 imagePickerController(就像 SnapChat 一样令人怀疑)。我创建了一个更简单的模板,其中完美地包含了两个简单的 VC——为什么我不能在这里做呢?我做的另一个是,我在项目开始的初始 VC 中包含以下所有代码,而在这里我创建了一个额外的 VC 并手动更改它以使其成为“初始视图控制器”。
注意。该项目在没有 pageVC 的情况下编译良好,因此与其他 VC 中的任何错误代码无关。
我非常困惑,非常感谢对这个棘手问题的帮助。谢谢!
class PageViewController: UIViewController, UIPageViewControllerDataSource {
private var pageViewController: UIPageViewController?
private let VCarray = [ViewController(), CaptionViewController()]
override func viewDidLoad() {
super.viewDidLoad()
createPageViewController()
}
private func createPageViewController() {
let pageController = self.storyboard!.instantiateViewControllerWithIdentifier("PageController") as! UIPageViewController
pageController.dataSource = self
if VCarray.count > 0 {
pageController.setViewControllers([ViewController()], direction: UIPageViewControllerNavigationDirection.Forward, animated: false, completion: nil)
}
pageViewController = pageController
addChildViewController(pageViewController!)
self.view.addSubview(pageViewController!.view)
pageViewController!.didMoveToParentViewController(self)
}
func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
if viewController.isKindOfClass(CaptionViewController) {
let pvc = self.storyboard?.instantiateViewControllerWithIdentifier("CameraVC")
return pvc
}
return nil
}
func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
if viewController.isKindOfClass(ViewController) {
let pvc = self.storyboard?.instantiateViewControllerWithIdentifier("CaptionVC")
return pvc
}
return nil
}
【问题讨论】:
-
您收到的错误信息是什么?
-
令人讨厌的是:致命错误:在展开可选值时意外发现 nil
-
这听起来像是运行时错误,而不是编译错误。
-
你说得对,已作相应修改。格雷格有什么线索吗?
标签: ios swift uiimagepickercontroller uigesturerecognizer uipageviewcontroller