我试图在重复功能中处理导航我无法让它工作这是我到目前为止的代码。
static func navigationBarShow() {
let navigationCoontroller = UINavigationController()
navigationCoontroller.navigationBarHidden = false
navigationCoontroller.navigationBar.barTintColor = UIColor(red:0.4, green:0.76, blue:0.93, alpha:1.0)
navigationCoontroller.navigationBar.translucent = false
navigationCoontroller.title = "Signup"
navigationCoontroller.navigationBar.tintColor = UIColor.whiteColor()
navigationCoontroller.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.whiteColor()]
}
答案 0 :(得分:1)
尝试将其编写为UINavigationController
的扩展名,并使用self
作为导航控制器。每次要显示导航栏时,您都在创建一个新的UINavigationController
实例,并且该实例永远不会显示在屏幕上。
extension UINavigationController {
func showNavigationBar() {
self.navigationBarHidden = false
self.navigationBar.barTintColor = UIColor(red:0.4, green:0.76, blue:0.93, alpha:1.0)
self.navigationBar.translucent = false
self.title = "Signup"
self.navigationBar.tintColor = UIColor.whiteColor()
self.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.whiteColor()]
}
}
然后,在任何UINavigationController
中,您都可以致电showNavigationBar()
。
在UIViewController
中嵌入UINavigationController
的任何子类的代码中,请致电navigationController!.showNavigationBar()
。
例如:
class MyViewController: UIViewController {
override func viewDidLoad() {
self.navigationController!.showNavigationBar()
}
}
请注意,!
假定您的视图控制器嵌入在导航控制器中。如果任何vc未嵌入导航控制器但您想要导航栏,则应考虑将其嵌入导航控制器中。
答案 1 :(得分:1)
这一行:
let navigationCoontroller = UINavigationController()
每次运行时都会创建一个全新的导航控制器。
除非你发布的代码只运行一次,这是错误的,因为每次调用该函数都会创建一个新的导航控制器