代码之家  ›  专栏  ›  技术社区  ›  Mateo Villagomez

如何知道是否按下了UIBarButtonItem?

  •  1
  • Mateo Villagomez  · 技术社区  · 9 年前

    我已经尝试了许多选项,但我没有找到合适的方法。我知道这个方法适用于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,如果这个问题是蹩脚的,我很抱歉。

    1 回复  |  直到 9 年前
        1
  •  0
  •   Luke De Feo    9 年前

    您需要保持一些外部状态,以跟踪上次按下按钮所做的操作,或者更好地从audioPlayer的状态进行推断。此状态也可用于驱动按钮显示的文本(播放/暂停)