Попытайтесь представить UIViewController на UIViewController, вид которого не находится в иерархии окон

558
задан animaonline 16 November 2017 в 12:40
поделиться

3 ответа

Это работает на представить любой контроллер представления, если Вы имеете контроллер навигации в наличии. self.navigationController? .present (MyViewController, анимированный: верный, завершение: ноль) кроме того, я могу способный представить предупреждения и почтовый контроллер также.

0
ответ дан 22 November 2019 в 22:09
поделиться

У меня была подобная проблема о Swift 4.2, но мое представление не было представлено от цикла представления. Я нашел, что имел, несколько непосредственно переходят, чтобы быть представленными в то же время. Таким образом, я использовал dispatchAsyncAfter.

func updateView() {

 DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { [weak self] in

// for programmatically presenting view controller 
// present(viewController, animated: true, completion: nil)

//For Story board segue. you will also have to setup prepare segue for this to work. 
 self?.performSegue(withIdentifier: "Identifier", sender: nil)
  }
}
1
ответ дан 22 November 2019 в 22:09
поделиться

Я зафиксировал эту ошибку с хранением самого верхнего viewcontroller в константу, которая найдена в в то время как цикл по rootViewController:

if var topController = UIApplication.shared.keyWindow?.rootViewController {
            while let presentedViewController = topController.presentedViewController {
                topController = presentedViewController
            }
            topController.present(controller, animated: false, completion: nil)
            // topController should now be your topmost view controller
        }
}
0
ответ дан 22 November 2019 в 22:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: