Swift:在代码中更改Bar Button Item

las*_*off 5 ios swift

我正在使用swift.我有一个Bar Button项目,我想在代码中将标识符从Play更改为Stop.这可能吗?你是怎么做到的?

@IBOutlet var StartStopButton: UIBarButtonItem!


@IBAction func StartAlarm(sender: AnyObject) {

    onOffIndicator.hidden = false
    StartStopButton.Identifier = ?????

}
Run Code Online (Sandbox Code Playgroud)

bor*_*ero 10

遗憾的是,您无法更改标识符,因此您必须设置整个条形按钮项.您必须执行以下操作:

self.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .Stop, target: self, action: "startAlarm:")
Run Code Online (Sandbox Code Playgroud)

为了使它更好,你可以定义一个UIBarButtonSystemItems 数组和一个索引,如下所示:

let myArray = [UIBarButtonSystemItem.Start, UIBarButtonSystemItem.Stop]
var index = 0
Run Code Online (Sandbox Code Playgroud)

然后你可以这样做:

self.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: myArray[++index % myArray.count], target: self, action: "startAlarm:")
Run Code Online (Sandbox Code Playgroud)

顺便说一下,记得使用非大写的函数和变量名;)