gpt4 book ai didi

ios - 如何在 SWIFT 4 中保存 UISwitch 的状态?

转载 作者:搜寻专家 更新时间:2023-10-31 23:08:31 24 4
gpt4 key购买 nike

<分区>

我想在 View Controller 之间切换后保存 UISwitch 的状态。任何帮助将不胜感激!

我有一个带有 UISwitch 的第一个 View Controller ,用于控制不同 View Controller 中的背景音乐:

@IBOutlet weak var SwitchMusic: UISwitch!
let defaults = UserDefaults.standard
var switchON : Bool = false

@IBAction func checkState(_ sender: UISwitch) {
if (sender.isOn == true)
{
switchON = true
defaults.set(switchON, forKey: "switchON")
MusicHelper.sharedHelper.playBackgroundMusic()
}
if (sender.isOn == false)
{
switchON = false
defaults.set(switchON, forKey: "switchON")
MusicHelper.sharedHelper.stopBackgroundMusic()
}
}

还有第二个 View Controller ,用于在开关打开或关闭时在后台加载或不加载音乐:

override func viewDidLoad() {
super.viewDidLoad()

if defaults.value(forKey: "switchON") != nil{
let switchON: Bool = defaults.value(forKey: "switchON") as! Bool
if switchON == true{
MusicHelper.sharedHelper.playBackgroundMusic()
}
else if switchON == false{
MusicHelper.sharedHelper.stopBackgroundMusic()
}
}
}

我还有一节音乐课:

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

现在它在 View Controllers 之间完美地播放背景音乐,并且可以关闭和打开......但不幸的是不保存 UISwitch 的当前状态,并且总是在我进入第一个 View 时 Controller Switch 的状态为 On。

还有关于如何在 Slider 中应用的想法吗?

如有任何帮助,我们将不胜感激!

谢谢

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com