2017-11-10 4 views
0

Ich möchte den Zustand eines UISlider nach dem Wechsel zwischen den View Controllern behalten und den UISlider in einem anderen View Controller arbeiten lassen (jetzt arbeitet er nur im aktuellen View Controller des UISliders)Wie behalte ich den UISlider-Status beim Ändern von ViewControllern? (swift)

Ich bin ein Anfänger zu Swift und allgemein Xcode. Vielen Dank im Voraus für Ihre Zeit und helfen :)

Zuerst habe ich mit einer Klasse für die Musik einen View-Controller haben:

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() 
    } 

Zweitens habe ich eine andere View-Controller mit dem UISlider:

@IBOutlet weak var SliderMusic: UISlider! 

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

Irgendeine Idee, wie wird es möglich sein, den UISlider in einem anderen View Controller zu verwenden und den Status zu behalten (Änderung des Volumens)?

Antwort

0

Wenn der View-Controller geladen wird, können Sie den Wert des Schiebereglers basierend auf dem aktuellen Volume-Wert festlegen. In der viewDidLoad Methode von UIViewController legen Sie den Wert Ihres Schiebereglers fest.

Beispiel:

override func viewDidLoad() { 
    super.viewDidLoad() 

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

Danke, dass es in der gleichen View Controller des UISlider gut funktioniert, dass Jede Idee, wie wird möglich sein, die UISlider in einer anderen Ansicht-Controller zu übernehmen und halten den Zustand (Änderung der Lautstärke) beim Vor- und Zurückspulen zwischen den View Controllern? – Manu

Verwandte Themen