我有三个 View Controller ,它们嵌入在导航 Controller 中。
我想从第一个 View Controller 中隐藏导航栏。
为此我使用
navigationController?.setNavigationBarHidden(true, animated: true)
在 viewdidload 方法中(对于第一个 Controller )。 同样用于其他两个 Controller ,但使用 false 参数来启用导航栏。
当我加载应用程序时 - 一切正常,NB 被禁用,当我转到第二个 Controller 时也一切正常 - 它已启用。但!当我按下第二个 Controller 的导航栏上的后退按钮并将用户发送到第一个 Controller 时 - 那里启用了导航栏。
当我们返回到 Controller 时,是否应该使用一个特殊的方法?谁能给我解释一下?非常感谢您的帮助。
最佳答案
当您按下后退按钮时,您的 View Controller viewDidLoad
方法不会再次调用(因为 Controller 未重新创建)并且导航栏将具有与您返回之前相同的状态。
为了更新显示的每个 View Controller 的导航栏,您必须在 viewWillAppear
方法而不是 viewDidLoad
中更新它。
关于ios - 快速导航栏行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38813223/