将标题设置为UIBarButtonItem

时间:2017-01-02 05:48:51

标签: ios swift uibarbuttonitem

我有UIBarButtonItem,每当我尝试为按钮设置标题时,它都无效。

@IBOutlet weak var barButton: UIBarButtonItem!

override func viewDidLoad() {
    super.viewDidLoad()

     barButton.title = "AB"
}

但是,如果我尝试创建UIBarButtonItem的Action然后执行sender.setTitle(),那么它可以工作。但不是viewDidLoad。当用户点击按钮时,我不想设置标题。

4 个答案:

答案 0 :(得分:1)

更改标题或图像,然后将其重新签名回navigationItem:

class AnotherViewController: UIViewController {

    @IBOutlet weak var myBarButton: UIBarButtonItem!

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
        let barButton = myBarButton
        barButton?.title = "Anther Title"
        navigationItem.rightBarButtonItem = barButton

    }
}

Apple文档:https://developer.apple.com/reference/uikit/uibaritem/1616412-title

  

您应该在将项目添加到栏之前设置此属性。默认值为nil。

答案 1 :(得分:0)

如果您已经为barButton设置了IBOutlet,为什么不在故事板中设置标题?我认为这是最简单的方法,除非你有其他理由以编程方式进行。

enter image description here

答案 2 :(得分:0)

当我尝试这个时,它有效。也许Xcode有一个错误,删除你的按钮和连接然后再试一次。

class ViewController: UIViewController {

   @IBOutlet weak var barButton: UIBarButtonItem!
   override func viewDidLoad() {
       super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
       barButton.title = "MyButton"
}

答案 3 :(得分:0)

试试这个

@IBOutlet weak var barButton: UIBarButtonItem! {
  didSet {
    barButton.title = "AB"
 }
}