隐藏backbutton嵌入式UINavigationController swift3

时间:2016-10-06 07:37:37

标签: swift back-button navigationbar

我使用嵌入式navigationController与Xcode8Swift3,我可以做一些更改,如透明背景等但不能隐藏backbutton或更改其标题

self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.isTranslucent = true

如何在导航栏中制作后退按钮?

谢谢

2 个答案:

答案 0 :(得分:1)

您可以在viewWillAppear下面编写此代码:

override func viewWillAppear(_ animated: Bool)
{
    super.viewWillAppear(animated)
    self.navigationItem.hidesBackButton = true
}

如果您想添加图片,可以这样做:

let leftButton: UIBarButtonItem = UIBarButtonItem(image: buttonImage, style: UIBarButtonItemStyle.plain, target: self, action:#selector(ViewController.leftButtonPress(sender:)))
navigationItem.leftBarButtonItem = leftButton

答案 1 :(得分:0)

设计自定义UIButton并用它替换默认的NavigationBar BackBarButtonItem

func customBackButton() {
    let leftButton = UIButton(type: UIButtonType.Custom)
    leftButton.frame = CGRectMake(0, 0, 36, 36)
    leftButton.clipsToBounds = true
    leftButton.setTitle("yourTitle", forState: .Normal) //set back button title
    leftButton.setImage(UIImage(named: "yourBackButton.png"), forState: .Normal) // add custom image
    leftButton.addTarget(self, action: #selector(self.onBackButton_Clicked(_:)), forControlEvents: UIControlEvents.TouchUpInside)
    let leftBarButton = UIBarButtonItem()
    leftBarButton.customView = leftButton
    self.navigationItem.leftBarButtonItem = leftBarButton
}

func onBackButton_Clicked(sender: UIButton)
{
    if(webview.canGoBack) {
        webview.goBack()
    }
    else {
        self.navigationController.popViewController(animated: true)
    }
}