2017-11-10 48 views
0

我想保留在視圖控制器之間切換後的UISlider的狀態,並使UISlider在另一個視圖控制器中工作(現在它只在UISlider的當前視圖控制器中工作)如何在更改ViewControllers時保持UISlider狀態? (swift)

我是Swift和Xcode的初學者。預先感謝您的時間和幫助:)

首先,我有一個視圖控制器與音樂類:

class MusicHelper { 
    let defaults = UserDefaults.standard 

    static let sharedHelper = MusicHelper() 

    var musicBackgroundIntro:AVAudioPlayer = AVAudioPlayer() 

    func playBackgroundMusic() { 
     do { 
      let audioPath = Bundle.main.path(forResource: "Music", ofType: "mp3") 
      try musicBackgroundIntro = AVAudioPlayer(contentsOf: NSURL(fileURLWithPath: audioPath!) as URL) 
      musicBackgroundIntro.numberOfLoops = -1 
      musicBackgroundIntro.prepareToPlay() 
      musicBackgroundIntro.play() 

     } catch { 
      print("Cannot play the file") 
     } 
    } 

    func stopBackgroundMusic() { 
     musicBackgroundIntro.stop() 
    } 

其次,我有另外一個視圖控制器與UISlider:

@IBOutlet weak var SliderMusic: UISlider! 

@IBAction func checkStateSliderMusic(_ sender: UISlider) { 
    MusicHelper.sharedHelper.musicBackgroundIntro.volume = sender.value 
} 

任何想法,將如何將UISlider應用到另一個視圖控制器並保持狀態(音量修改)?

回答

0

當您的視圖控制器加載時,您可以根據當前音量值設置滑塊值。在viewDidLoad方法UIViewController中設置滑塊的值。

例子:

override func viewDidLoad() { 
    super.viewDidLoad() 

    musicSlider.value = Float(MusicHelper.sharedHelper.musicBackgroundIntro.volume) 
} 
+0

謝謝,這是在UISlider的相同視圖控制器運作良好,任何想法,如何將有可能應用UISlider在另一個視圖控制器和保持狀態(修改音量)在視圖控制器之間前後移動? – Manu

相關問題