2017-11-10 12 views
0

View Controller간에 변경하려면 UISlider의 상태를 유지하고 다른보기 컨트롤러에서는 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 
} 

다른 뷰 컨트롤러에서 UISlider를 적용하고 상태 (볼륨 수정)를 유지하는 방법은 무엇입니까?

답변

0

보기 컨트롤러가로드되면 현재 볼륨 값을 기준으로 슬라이더 값을 설정할 수 있습니다. UIViewControllerviewDidLoad 방법에서 슬라이더 값을 설정하십시오.

예 :

override func viewDidLoad() { 
    super.viewDidLoad() 

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

감사합니다, 그것은 UISlider 같은보기 컨트롤러에서 잘 작동하는지, 어떤 생각이 어떻게 다른 뷰 컨트롤러에 UISlider을 적용하고 (의 수정 상태를 유지할 수있을 것 볼륨)보기 컨트롤러간에 앞뒤로 이동할 때? – Manu