2015-03-23 2 views
1

Я пытаюсь переключаться между кнопкой воспроизведения и кнопкой паузы в быстром режиме. У меня есть элемент кнопки на панели инструментов, чей идентификатор изначально установлен в play. Я пытался искать и нашел следующую часть code, но он не работает, выглядит как она работает, когда кнопка бар находится в навигационной панелиКак изменить значок кнопки на панели инструментов в swift?

self.navigationItem.setLeftBarButtonItem(UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Play, target: self, action: "TheMethodThatTheButtonShouldCall"), animated: true)

ответ

1

Вам необходимо установить items на UIToolbar обновить панель инструментов пункты: вызов func setItems(_items: [AnyObject]?,animated animated: Bool) с вашими новыми пунктами, чтобы обновить элементы панели инструментов

источника: https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UIToolbar_Class/index.html#//apple_ref/occ/instm/UIToolbar/setItems:animated:

0

Реализован свой вопрос с кодом, как показано ниже. работает в Swift 2. Обратите внимание, что я подключил выход IBAction к playBtn

import UIKit 
import AVFoundation 

class ViewController: UIViewController { 

    @IBOutlet var sliderVal: UISlider! 
    @IBOutlet var theToolbar: UIToolbar! 

    var mySound = AVAudioPlayer() 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     let path = NSBundle.mainBundle().pathForResource("ColdPlay", ofType: "mp3") 

     do { 
     mySound = try AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: path!)) 
     } 
     catch{ 
      print("error caught") 
     } 
    } 

    @IBAction func playBtn(sender: UIBarButtonItem) { 

    let theBarbuttonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Pause, target: self, action: "pauseBtn:") 
    let arrayBarButtonItem = [theBarbuttonItem] 
    theToolbar.setItems(arrayBarButtonItem, animated: true) 


     mySound.play() 
    } 

    @IBAction func pauseBtn(sender: UIBarButtonItem) { 
     let theBarbuttonItemB = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Play, target: self, action: "playBtn:") 
     let arrayBarButtonItemB = [theBarbuttonItemB] 
     theToolbar.setItems(arrayBarButtonItemB, animated: true) 

     mySound.pause() 
    } 
} 
+0

Я думаю, что это работает только в том случае, если в инструменте есть только один элемент. Что делать, если есть несколько предметов? –

Смежные вопросы