2014-07-12 35 views
3
var backButton: UIBarButtonItem = UIBarButtonItem(title: "CUSTOM", style: UIBarButtonItemStyle.Bordered, target: self, action: nil) 
    newNavigationItem.backBarButtonItem = backButton 

哪里是newNavigationItem: UINavigationItembackBarButtonItem iOS中(SWIFT)

我想定制回来称号。它显示“返回”文本或“最后一个视图的标题”。所以它不起作用。为什么?

回答

9

是约杰什Suthar表示将更换整个背部按钮,这样你就不必在默认的左箭头标志的方法!我建议使用此代码:

navigationController?.navigationBar.topItem?.backBarButtonItem = backButton 
+0

你把它放在父视图控制器中吗? – zzzel

+0

是的。您可以在可访问navigationViewcontroller的任何位置执行此操作。 – Majid

+0

这应该是被接受的答案。设置leftBarButtonItem是一种解决方法。在swift 2中,我在视图控制器的viewDidLoad中使用了这个按钮,我将其改变为我想改变后面的标题:'navigationController?.navigationBar.topItem?.backBarButtonItem = UIBarButtonItem(title:“Back”,style:.Plain,目标:无,操作:无)# – earnshavian

3

使用leftBarButtomItem

newNavigationItem.backBarButtonItem = backButton 

应该

newNavigationItem.leftBarButtonItem = backButton 
+0

感谢。那工作。对于backBarButtonIteam现在的情况?还有一个问题:需要在“Action”中放入这个按钮的工作方式通常是后退按钮 –

+0

啊。也没有剩下箭头了。如何添加它? –

+1

@MaximDroy你为什么不设置title属性呢?无需创建全新的UIBarButtonItem。请参阅:http://stackoverflow.com/questions/20282760/back-text-displayed-in-ios7-navigationbar-when-view-title-is-long – klcjr89

1
override func viewDidLoad() { 
super.viewDidLoad() 
    let newBackButton = UIBarButtonItem(title: "Back", 
     style: UIBarButtonItemStyle.Plain, target: self, action: "backAction") 
    navigationController?.navigationBar.topItem?.backBarButtonItem = newBackButton 

}

func backAction() -> Void { 
    self.navigationController?.popViewControllerAnimated(true) 
}