ios - 应用程序在返回到前台时在不同的 ViewController 中打开
问题描述
我的 IOS 应用在同一个情节提要中有 2 个导航控制器。
EntryPoint -> FirstNavigationController -> AViewController -> BViewController -> CViewController -> ......
如果满足某些条件BViewController
,我会选择另一个 NavigationController 而不是继续CViewController
。
BViewController -> NewNavigationController -> DViewController -> EViewController
我的问题是,如果我在DViewController
我的应用程序返回前台时切换到另一个应用程序,它首先显示DViewController
然后立即切换到BViewController
这只发生在我沿着新的导航控制器路径下去时。如果我切换应用程序CViewController
,当我返回时,它会保持CViewController
原样。
在applicationWillEnterForeground(_ application: UIApplication)
appDelegate 中,
self.window?.rootViewController?.restorationIdentifier
出于某种原因,当我更改为另一个导航控制器时,我的rootViewControllerFirstNavigationController
不会更改。应该是?我错过了什么吗?
DViewController 的 viewDidLoad()、viewWillAppear() 和 viewWillDisappear()。他们几乎是空的。
override func viewDidLoad() {
super.viewDidLoad()
self.usernameTextField.delegate = self
enableContinueButton()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
//add notifications for keyboard
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
//remove notifications for keyboard
}
谢谢,