Swift 3 - addChildViewController на UIWindow другого контроллера представления
Я должен добавить второй вид контроллера представления на UIWindow первого контроллера представления, используя addChildViewController
, но у меня возникает проблема, когда я пытаюсь это сделать. Мой запрос, можно добавить, что другой вид контроллера представления на UIWindow?
secondVC = (self.storyboard?.instantiateViewController(withIdentifier: "secondVC"))!
self.addChildViewController(secondVC)
self.didMove(toParentViewController: self)
draw.view.frame = CGRect(x:0, y:0, 320, 568)
let window = UIApplication.shared.keyWindow
window?.addSubview(secondVC.view)
1 ответ
Что ж, возможно, вам следует создать экземпляр корневого VC, а затем добавить второй VC в первый VC вашего приложения. Например, вы можете написать что-то вроде этого:
//init the storyboard
let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)
//init the firstVC
let navigation = storyboard.instantiateInitialViewController() as! UINavigationController
let firstVC = navigation.viewControllers[0]
//init the second VC
let secondVC = (self.storyboard?.instantiateViewController(withIdentifier: "secondVC"))!
//add child VC
firstVC.addChildViewController(secondVC)
secondVC.view.frame = firstVC.view.bounds
self.view.addSubview(controller.view)
secondVC.didMove(toParentViewController: self)
Это связано с тем, что с главным окном связан корневой VC. Ключевое окно имеет начальный контроллер вида с главной раскадровки.