如何添加后退按钮到自定义的UINavigationBar
我使用约束创建了自定义的UINavigationBar。我无法为其添加后退按钮。我可以制作一个用户界面按钮并将其放置在顶部,但除非必须,否则我不想这样做。如何添加后退按钮到自定义的UINavigationBar
这是使用的相关代码。
let navBar: UINavigationBar = {
let myNav = UINavigationBar()
myNav.translatesAutoresizingMaskIntoConstraints = false
return myNav
}()
func setUpNavBarView(){
self.navBar.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
self.navBar.topAnchor.constraint(equalTo: view.topAnchor as NSLayoutAnchor<NSLayoutYAxisAnchor>).isActive = true
self.navBar.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true
self.navBar.heightAnchor.constraint(equalToConstant: 60).isActive = true
self.navBar.barTintColor = UIColor.red
self.navBar.isTranslucent = false
}
lazy var backButton: UIBarButtonItem = {
let button = UIBarButtonItem(image: "Image", style: .plain, target: self, action: #selector(backButtonTapped))
return button
}()
navigationItem.setLeftBarButton(backButton, animated: false)
func backButtonTapped() {
//Do transition here
}
我把viewIdLoad中的navigationItem.setLeftBarButton(backButton,animated:false)吗? –
从技术上讲,你可以随时在VC的生命周期中做到这一点,但如果你希望它出现在视图中,那么yes,viewDidLoad是一个很好的选择。 – JustinM
我测试了你的代码,没有错误,但按钮没有显示出来。我把测试图像放在它说“图像”的地方。我打算玩一下viewController –
你有导航控制器上一个视图控制器? – MacStation
我不这样认为,这会迫使它添加一个后退按钮,因为之前的viewController将会是第一个在堆栈中的第一个? –
我相信是这样的,通过向导航控制器添加一个先前的视图控制器,它应该有一个后退按钮,默认为前一个视图控制器的名称,或者返回,如果为零。 – MacStation