繁体   English   中英

为什么在运行PageViewController后出现此错误?

[英]Why am I getting this error after running my PageViewController?

我希望创建一个与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

}

我看到的唯一可选的展开是在第一行。 那是引发异常的地方吗? 您确定您的主控制器有一个故事板吗? 如果是这样,您确定情节提要中包含一个名为“ PageController”的控制器吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM