簡體   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