UIImagePickerController

UIImagePickerController

我正在尝试使用UIImagepickerController从照片中选取图像。
我在游戏场景类中使用下面的函数
(用于将图像导入游戏)
但我得到了错误“线程1:致命错误:在展开可选值时意外发现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)
    } }

最佳答案

而不是

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

,使用可选链接并尝试
guard let vc = self.view?.window?.rootViewController else {
    print("something went wrong")
}

如果您在代码上方运行代码,则只需运行上面的print语句,就可以看到您的视图、窗口或rootViewController在尝试强制展开时不存在。
能否共享设置viewController的代码?

关于swift - UIImagePickerController Spritekit,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48553962/

10-13 04:07