gpt4 book ai didi

ios - 隐藏导航栏 ios swift 生命周期方法未调用导致问题

转载 作者:行者123 更新时间:2023-11-28 05:38:39 29 4
gpt4 key购买 nike

我想在我的 TabBarController 中的特定 View Controller 中隐藏导航栏

下面是我第一个tabbar View Controller 的代码

override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
self.navigationController?.setNavigationBarHidden(true, animated: false)
}

override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(true)
self.navigationController?.setNavigationBarHidden(false, animated: false)

}

但有时,当我更改选项卡栏选择时,如果我从该 Controller 显示 View ,则也不会调用 viewWillAppear 关闭显示的 Controller 时不会调用 viewWillAppear。

由于面临的问题。如何解决这个问题?

如果我推送 View Controller ,也不会调用 viewWillDisappear 以下是它的代码

    let flightVC = AppStrings.appStoryBoard.instantiateViewController(withIdentifier: "flightViewPagerControllerID") as! FlightViewPagerController



self.navigationController?.pushViewController(flightVC, animated: true)

最佳答案

对于标签栏选择更改时 viewWillAppear 不触发,我认为最好覆盖 optional func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) 和根据您的 viewController 隐藏/取消隐藏。

如果 viewWillAppear 没有在关闭呈现的 Controller 时被调用,请确保您的 modalPresentationStyle 设置为 .fullScreen

编辑:根据更新后的问题,我认为您应该使用 navigationController(_:didShow:animated:)navigationController(_:willShow:animated :) 用于检测 View 是否已被推送。

关于ios - 隐藏导航栏 ios swift 生命周期方法未调用导致问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57732377/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com