在iOS应用中,界面跳转时,导航栏和tabBar的隐藏与显示是一个比较常见的需求。主要有以下几种方式实现:
1. 设置隐藏属性在跳转前,设置目标视图控制器的hidesBottomBarWhenPushed或hidesNavigationBarDuringPresentation属性来隐藏tabBar或导航栏。在跳转返回时,它们又会自动显示。
let vc = storyboard.instantiateViewController(withIdentifier: "NextVC") vc.hidesBottomBarWhenPushed = true // 隐藏tabBar vc.hidesNavigationBarDuringPresentation = true // 隐藏导航栏 navigationController?.pushViewController(vc, animated: true)
2. 设置根视图在跳转的目标控制器中,手动设置根视图的frame来隐藏tabBar和导航栏。
override func viewDidLoad() { super.viewDidLoad() tabBarController?.tabBar.isHidden = true // 隐藏tabBar navigationItem.hidesBackButton = true // 隐藏导航栏的返回按钮 navigationController?.navigationBar.isHidden = true // 隐藏整个导航栏 }
在返回时,再将它们显示出来。
3. 使用自定义转场动画通过自定义push转场动画和pop转场动画,可以在动画过程中自行控制tabBar和导航栏的显示状态,实现平滑转换的效果。
// push动画 override func pushViewController(_ viewController: UIViewController, animated: Bool) { tabBarController?.tabBar.isHidden = true viewController.view.frame = CGRect(x: 0, y: self.view.frame.height, width: self.view.frame.width, height: self.view.frame.height) self.view.addSubview(viewController.view) // 自定义动画 ... } // pop动画 override func popViewController(animated: Bool) -> UIViewController? { // 自定义动画 ... tabBarController?.tabBar.isHidden = false }
以上三种方法可以灵活实现导航栏和tabBar的显示与隐藏控制。
© 版权声明
本文刊载的所有内容,包括文字、图片、音频、视频、软件、程序、以及网页版式设计等部门来源于互联网,版权均归原作者所有!本网站提供的内容服务于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
联系信息:邮箱aoxolcom@163.com或见网站底部。
联系信息:邮箱aoxolcom@163.com或见网站底部。
THE END
请登录后发表评论
注册
社交帐号登录