setNavigationBarHidden不起作用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了setNavigationBarHidden不起作用相关的知识,希望对你有一定的参考价值。
这对你们中的一些人来说似乎很明显,但我无法在网上找到答案。我试图让我的导航栏只出现在一个视图控制器上,所以所有的教程都显示我刚刚添加了这个:
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
self.navigationController?.setNavigationBarHidden(true, animated: false)
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.setNavigationBarHidden(false, animated: false)
}
但是当我退出这个视图控制器然后返回它时,导航栏就不存在了。有任何想法吗??
答案
我认为你是在正确的轨道,但你需要定义采取的行动。假设您在View Controller中有UIScrollView,并且您希望导航栏消失,所以这里是您可以使用的最佳代码。
func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
if(velocity.y>0) {
UIView.animate(withDuration: 2.5, delay: 0, options: UIViewAnimationOptions(), animations: {
self.navigationController?.setNavigationBarHidden(true, animated: true)
}, completion: nil)
} else {
UIView.animate(withDuration: 2.5, delay: 0, options: UIViewAnimationOptions(), animations: {
self.navigationController?.setNavigationBarHidden(false, animated: true)
}, completion: nil)
}
}
在您的情况下,您不需要将动画两次声明它已经由函数定义尝试删除,如下所示。
override func viewWillDisappear(_ animated: Bool) {
self.navigationController?.setNavigationBarHidden(true, animated: false)
}
override func viewWillAppear(_ animated: Bool) {
self.navigationController?.setNavigationBarHidden(false, animated: false)
}
以上是关于setNavigationBarHidden不起作用的主要内容,如果未能解决你的问题,请参考以下文章
使用dwr后,javaweb设置的session超时失效,web.xml和tomcat设置都不起作
我的Android进阶之旅------>Android中ListView中嵌套(ListView)控件时item的点击事件不起作的问题解决方法
Swift 调用 setNavigationBarHidden 但视图不会移到顶部
setNavigationBarHidden 动画在 iPhone X 上无法正常工作