Aby*_*hew 240 uinavigationbar uinavigationcontroller ios swift
如何在第一个ViewController或swift中的特定ViewController中隐藏导航栏?
我使用以下代码viewDidLoad():
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController?.isNavigationBarHidden = true
}
Run Code Online (Sandbox Code Playgroud)
还有viewWillAppear:
override func viewWillAppear(animated: Bool) {
self.navigationController?.isNavigationBarHidden = true
}
Run Code Online (Sandbox Code Playgroud)
这两种方法都隐藏了所有ViewControllers的导航控制器.
Ren*_*ers 252
如果您知道所有其他视图都应该显示该栏,则可以使用viewWillDisappear它将其设置为再次可见.
在Swift中:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
navigationController?.setNavigationBarHidden(true, animated: animated)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
navigationController?.setNavigationBarHidden(false, animated: animated)
}
Run Code Online (Sandbox Code Playgroud)
Mic*_*ito 247
斯威夫特3
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// Hide the navigation bar on the this view controller
self.navigationController?.setNavigationBarHidden(true, animated: animated)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
// Show the navigation bar on other view controllers
self.navigationController?.setNavigationBarHidden(false, animated: animated)
}
Run Code Online (Sandbox Code Playgroud)
Dee*_*esh 76
您可以取消隐藏navigationController在viewWillDisappear
override func viewWillDisappear(animated: Bool)
{
super.viewWillDisappear(animated)
self.navigationController?.isNavigationBarHidden = false
}
Run Code Online (Sandbox Code Playgroud)
斯威夫特3
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
self.navigationController?.setNavigationBarHidden(false, animated: animated)
}
Run Code Online (Sandbox Code Playgroud)
Ank*_*ara 19
您还可以为此创建扩展,这样您就可以重复使用扩展,而无需在每个视图控制器中反复执行此扩展.
import UIKit
extension UIViewController {
func hideNavigationBar(){
// Hide the navigation bar on the this view controller
self.navigationController?.setNavigationBarHidden(true, animated: true)
}
func showNavigationBar() {
// Show the navigation bar on other view controllers
self.navigationController?.setNavigationBarHidden(false, animated: true)
}
}
Run Code Online (Sandbox Code Playgroud)
因此,您可以使用如下的扩展方法
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
hideNavigationBar()
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
showNavigationBar()
}
Run Code Online (Sandbox Code Playgroud)
在Swift 3中,您还可以使用isNavigationBarHidden属性来显示或隐藏导航栏
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// Hide the navigation bar for current view controller
self.navigationController?.isNavigationBarHidden = true;
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
// Show the navigation bar on other view controllers
self.navigationController?.isNavigationBarHidden = false;
}
Run Code Online (Sandbox Code Playgroud)
在 Swift 中隐藏导航栏的方法:
self.navigationController?.setNavigationBarHidden(true, animated: true)
self.navigationController?.navigationBar.isHidden = true
self.navigationController?.isNavigationBarHidden = true
Run Code Online (Sandbox Code Playgroud)
小智 5
override func viewWillAppear(animated: Bool) {
self.navigationController?.isNavigationBarHidden = true
}
Run Code Online (Sandbox Code Playgroud)
override func viewWillAppear(animated: Bool) {
self.navigationController?.isNavigationBarHidden = false
}
Run Code Online (Sandbox Code Playgroud)