UIImagePickerController spritekit

时间:2018-02-01 01:19:56

标签: swift sprite-kit

我正在尝试使用UIImagepickerController从照片中挑选图像。 我在我的gameScene类中使用下面的函数 (这是用于将图像导入游戏中)

但是我收到错误“线程1:致命错误:在展开Optional值时意外发现nil” 在这一行

self.view!.window!.rootViewController!

功能如下。我不知道如何修复它并且没有太多运气就找到了答案,所以任何帮助都会很棒。

   func getPhotoFromSource(source:UIImagePickerControllerSourceType ){
    if UIImagePickerController.isSourceTypeAvailable(source)
    {
        let imagePicker = UIImagePickerController()
        imagePicker.modalPresentationStyle = .currentContext
        imagePicker.delegate = self
        imagePicker.sourceType = source
        imagePicker.allowsEditing = false
        if (source == .camera){
            imagePicker.cameraDevice = .front
        }
        let vc:UIViewController =   self.view!.window!.rootViewController!  //Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value

        vc.present(imagePicker, animated: true, completion: nil)
    } }

1 个答案:

答案 0 :(得分:1)

而不是

let vc:UIViewController =   self.view!.window!.rootViewController!

,使用可选链接并尝试

guard let vc = self.view?.window?.rootViewController else {
    print("something went wrong")
}

当您尝试强行打开包装时,看看它的视图或窗口或rootViewController是不存在的,如果您运行代码上方的代码,则只运行打印上面的陈述。

您可以分享设置viewController的代码吗?