如何知道 UIBarButtonItem 是否被按下?

How to know if UIBarButtonItem is pressed?

我已经尝试了很多选项来让这段代码工作,但我没有找到合适的方法。我知道此方法适用于 UIButtons 但与 UIBarButtonItems 似乎不同。

@IBOutlet weak var stopOutlet: UIBarButtonItem!

@IBAction func stop(sender: AnyObject) {

    if stopOutlet.selected {

        player.stop()

    } else {

        player.play()

        do {
            try player = AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: audioPath))

        } catch {
            print("Unable to play the file. Please try another song")
        }
    }
}

不起作用的代码行如下

if stopOutlet.selected

是否有适用于 UIBarButtonItems 的布尔值???

我刚开始学习 swift 和 Xcode 如果问题很蹩脚,我很抱歉。

您需要维护一些外部状态来跟踪最后一次按下按钮的操作,或者更好地从 audioPlayer 的状态推断它。这个状态也可以用来驱动按钮显示的文字(play/pause)