如何使用UIBarButtonSystemItem来更改UIBarButtonItem标识符?(迅速)

Ahm*_*med 8 xcode uibarbuttonitem swift

我想将代码从"播放"更改为"暂停"的UIBarButtonItem的标识符.我怎样才能做到这一点?

谢谢

Þor*_*son 17

1)初始化一个新按钮

//change to play
let button = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Play, target: self, action: "someAction")
navigationBar.topItem.leftBarButtonItem = button

//change to pause
let button = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Pause, target: self, action: "someOtherAction")
navigationBar.topItem.leftBarButtonItem = button
Run Code Online (Sandbox Code Playgroud)

2)只需更改文字:

navigationBar.topItem?.leftBarButtonItem?.title = "AnyText"
Run Code Online (Sandbox Code Playgroud)

如果您在访问导航栏时遇到问题,最好只设置一些标签(我喜欢使用特定视图的负标签*来确保2个视图*不会获得相同的标签).然后你可以这样做:

let navigationBar = (self.view.viewWithTag(-1) as UINavigationBar)
navigationBar.topItem?.leftBarButtonItem?.title = "AnyText"
Run Code Online (Sandbox Code Playgroud)


Pau*_*ann 8

我使用此代码切换编辑模式

@IBAction func editMode(sender: UIBarButtonItem) {
    self.setEditing(!self.isEditing, animated: true)

    let newButton = UIBarButtonItem(barButtonSystemItem: (self.isEditing) ? .done : .edit, target: self, action: #selector(editMode(sender:)))
    self.navigationItem.setLeftBarButton(newButton, animated: true)
}
Run Code Online (Sandbox Code Playgroud)