我想保持UISlider的状态之后,在视图控制器之间进行更改,并使UISlider在另一个视图控制器中工作(现在它仅在UISlider的当前视图控制器中工作)
我是Swift和Xcode的初学者。预先感谢您的时间和帮助:)
首先,我有一个带有音乐类的View Controller:
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的View Controller:
@IBOutlet weak var SliderMusic: UISlider!
@IBAction func checkStateSliderMusic(_ sender: UISlider) {
MusicHelper.sharedHelper.musicBackgroundIntro.volume = sender.value
}
是否知道如何将UISlider应用于另一个View Controller并保持状态(音量修改)?
最佳答案
当视图控制器加载时,您可以基于当前音量值设置滑块值。在viewDidLoad
的UIViewController
方法中,设置滑块的值。
例:
override func viewDidLoad() {
super.viewDidLoad()
musicSlider.value = Float(MusicHelper.sharedHelper.musicBackgroundIntro.volume)
}
关于ios - 更改ViewControllers时如何保持UISlider状态? ( swift ),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47230647/