Переменные не загружаются при нажатии модального из SceneDelegate

#ios #swift #appdelegate #modalviewcontroller #uiscenedelegate

#iOS #swift #appdelegate #modalviewcontroller #uiscenedelegate

Вопрос:

Я пытаюсь нажать модальный параметр из SceneDelegate. Все это работает хорошо, пока не будет запущен модальный push.

Я получаю сообщение об ошибке ниже, и Xcode сообщает, что переменные imagePreview и downloadUrl равны нулю. Да, переменные загружаются из firebase, как будто я их печатаю, это работает.

2020-10-23 02:18:20.277808 0200 MyApp[30028:568894] Неустранимая ошибка: неожиданно обнаружено значение nil при неявном развертывании необязательного значения: file MyApp/DownloadViewController.swift, строка 29

 func pushFile(id: String) {
        self.window?.rootViewController = DownloadViewController()
        ref = Database.database().reference(withPath: "files")
        ref.child(id).observeSingleEvent(of: .value, with: { [self] (snapshot) in
            let value = snapshot.value as? NSDictionary
            let preview = value?["a"] as? String ?? ""
            let downloadURL = value?["d"] as? String ?? ""
            
            if let tabBarController = window?.rootViewController! as? UIViewController {  //use of unresolved identifier 'window'
                let storyboard = UIStoryboard(name: "Main", bundle: nil)
                if let vc = storyboard.instantiateViewController(withIdentifier: "download") as? DownloadViewController {
                    vc.imagePreview = preview
                    vc.downloadURL = downloadURL
                    tabBarController.present(vc, animated: true)
                }
            }
        })
    }
  

Комментарии:

1. Вы получаете use of unresolved identifier 'window' или Fatal error: Unexpectedly found nil ?

2. Я получаю фатальную ошибку: неожиданно найдено nil