我正在尝试将BackButton设置为图像,而不是标准文本和backArrow,但是无论如何我都无法正常工作。我试过隐藏BackButton并设置leftBarbutton,但是backButton没有隐藏,我试过如下设置backBarButtonItem,但仍然只显示标准的backButton。我究竟做错了什么?

    var backButton:UIBarButtonItem = UIBarButtonItem(image: UIImage(named: "left"), style: UIBarButtonItemStyle.Plain, target: self, action: Selector("goBack:"))

    self.navigationController?.navigationItem.backBarButtonItem = backButton


现在尝试

    var backButton:UIBarButtonItem = UIBarButtonItem(image: UIImage(named: "left"), style: UIBarButtonItemStyle.Plain, target: self, action: Selector("goBack:"))

    self.navigationController?.navigationItem.leftBarButtonItem = backButton

最佳答案

您不应使用self.navigationController?.navigationItem,而应直接使用self.navigationItem

但是无论如何,要获得更多背景信息:


  当此导航项目位于堆栈顶部项目的紧下方时,导航控制器将从该导航项目派生导航栏的后退按钮。


(摘自backBarButtonItem的Apple文档


这意味着,backBarButton item属性只能更改您下推到UINavigationController堆栈上的下一个viewController的后退按钮外观。

为了达到理想的效果,您可以


设置leftBarButtonItem(这会自动隐藏后退按钮)并在单击时手动调用self.navigationController.popViewControllerAnimated(true)


要么


使用UINavigationBar.appearance() API。

关于ios - 将图像设置为backButton,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27216749/

10-10 21:05