应用返回到前景时会在其他ViewController中打开

时间:2018-07-03 17:19:00

标签: ios swift

我的IOS应用在同一情节提要中有2个导航控制器。

EntryPoint -> FirstNavigationController -> AViewController -> BViewController -> CViewController -> ......

如果BViewController中满足某些条件,我会选择另一个导航控制器,而不是继续进行CViewController

BViewController -> NewNavigationController -> DViewController -> EViewController

我的问题是,如果我的应用返回到前台时切换到DViewController中的另一个应用,它首先显示DViewController,然后立即切换到BViewController

仅当我沿着新的导航控制器路径行驶时才会发生。如果我在CViewController中切换应用,当我返回时,它会按原样停留在CViewController中。

在appDelegate的applicationWillEnterForeground(_ application: UIApplication)中,

self.window?.rootViewController?.restorationIdentifier

打印FirstNavigationController的restoreIdentifier,因此由于某种原因,当我切换到另一个导航控制器时,我的rootViewController不会改变。应该是?我想念什么吗?

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
}

谢谢

0 个答案:

没有答案