Я пытаюсь изменить контроллер корневого представления при нажатии кнопки с ViewController1 на ViewController2 и наоборот. Проблема в том, что у меня появляется черный экран после того, как я установил второй контроллер представления в качестве корневого контроллера представления. Прилагаю свой код.
Мой AppDelegate.swift
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
let storyBoard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle())
let vc1 = storyBoard.instantiateViewControllerWithIdentifier("VC1") as! VC1
let nc = UINavigationController(rootViewController: vc1)
self.window?.rootViewController = nc
self.window?.makeKeyAndVisible()
return true
}
Контроллер первого представления (VC1.swift)
class VC1: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
deinit {
print("Deinit of VC1")
}
@IBAction func btnTapped(sender: AnyObject) {
let window = UIApplication.sharedApplication().windows[0]
let rootNavigationControl = window.rootViewController as! UINavigationController
let storyBoard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle())
let vc2 = storyBoard.instantiateViewControllerWithIdentifier("VC2") as! VC2
let nc = UINavigationController(rootViewController: vc2)
rootNavigationControl.presentViewController(nc, animated: true) { () -> Void in
// ------- Becomes black screen here ----------
rootNavigationControl.viewControllers = [vc2]
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
Второй контроллер представления (VC2.swift)
class VC2: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
deinit {
print("Deinit of VC2")
}
@IBAction func btnTapped(sender: AnyObject) {
let window = UIApplication.sharedApplication().windows[0]
let rootNavigationControl = window.rootViewController as! UINavigationController
let storyBoard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle())
let vc1 = storyBoard.instantiateViewControllerWithIdentifier("VC1") as! VC1
let nc = UINavigationController(rootViewController: vc1)
rootNavigationControl.presentViewController(nc, animated: true) { () -> Void in
rootNavigationControl.viewControllers = [vc1]
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
Пожалуйста, может кто-нибудь помочь мне понять, в чем проблема. Заранее спасибо за помощь.