首页 > 解决方案 > 应用程序在返回到前台时在不同的 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
}

谢谢,

标签: iosswift

解决方案


推荐阅读