仅使导航堆栈中的一个导航栏透明 iOS Swift
Making only one navigation bar in Navigation Stack transparent iOS Swift
我有一个带有导航流程的导航控制器,如下所示:
NC -> A -> B
B 通过推送转场出现。
A的navigationbar使用以下方式透明化
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController!.navigationBar.isTranslucent = true
self.navigationController!.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController!.navigationBar.shadowImage = UIImage()
}
并且在 viewWillDisappear 中将半透明设置为 false,以便 B 可以拥有通常的导航栏:
override func viewWillDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
self.navigationController!.navigationBar.isTranslucent = false
}
问题是,当在 B 中按返回按钮到 return 到 A 时,B 的导航栏会在消失前短暂出现。如何解决这个问题?
PS:我不想将代码添加到 B 的覆盖方法中,因为 B 可能会被其他导航控制器共享。
The issue is that when Back button is pressed in B to return to A, The
navigation bar of B appears momentarily before disappearing. How to
solve this issue?
您不需要在 viewWillDisappear
方法中切换任何内容。只需在每个屏幕的 viewWillAppear
方法中切换所有内容即可。
这是你想要的吗?如果是这样,我在 Github 上做了一个示例项目,仅供您使用,也供以后 iOS 的其他新手使用。
https://github.com/glennposadas/showhidenavbar-ios
虽然它使用我非常简单的 cocoapod,但您可以从我的框架和示例项目中复制所有内容。
我有一个带有导航流程的导航控制器,如下所示:
NC -> A -> B
B 通过推送转场出现。
A的navigationbar使用以下方式透明化
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController!.navigationBar.isTranslucent = true
self.navigationController!.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController!.navigationBar.shadowImage = UIImage()
}
并且在 viewWillDisappear 中将半透明设置为 false,以便 B 可以拥有通常的导航栏:
override func viewWillDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
self.navigationController!.navigationBar.isTranslucent = false
}
问题是,当在 B 中按返回按钮到 return 到 A 时,B 的导航栏会在消失前短暂出现。如何解决这个问题?
PS:我不想将代码添加到 B 的覆盖方法中,因为 B 可能会被其他导航控制器共享。
The issue is that when Back button is pressed in B to return to A, The navigation bar of B appears momentarily before disappearing. How to solve this issue?
您不需要在 viewWillDisappear
方法中切换任何内容。只需在每个屏幕的 viewWillAppear
方法中切换所有内容即可。
这是你想要的吗?如果是这样,我在 Github 上做了一个示例项目,仅供您使用,也供以后 iOS 的其他新手使用。
https://github.com/glennposadas/showhidenavbar-ios
虽然它使用我非常简单的 cocoapod,但您可以从我的框架和示例项目中复制所有内容。