2017-11-10 3 views
0

View Controller間での変更後にUISliderの状態を保持し、別のView ControllerでUISliderを動作させたい(現在はUISliderの現在のView Controllerでのみ動作しています)ViewControllersの変更時にUISliderの状態をどう保持しますか?

私は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 
} 

他のView ControllerでUISliderをどのように適用し、状態(ボリュームの変更)を維持することができますか?

答えて

0

ビューコントローラが読み込まれると、現在の音量値に基づいてスライダの値を設定できます。 viewDidLoadの方法でUIViewControllerあなたのスライダの値を設定します。

例:

override func viewDidLoad() { 
    super.viewDidLoad() 

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

おかげで、それはUISliderの同じビューコントローラにうまく機能していることを、任意のアイデアはどのように別のビューコントローラでUISliderを適用し、(の修正を状態を保つことが可能となることボリューム)を表示コントローラ間で前後に移動する場合 – Manu

関連する問題