切换UI元素图形问题

时间:2016-12-25 13:12:08

标签: ios swift uiswitch

我已经为我的应用程序实现了一个开关ui元素。它充当音乐切换器并且完美地工作。但是,一旦你离开视图控制器并返回。开关图形设置为开,但实际值与用户先前设置的值相同

可能导致这种情况的原因是什么?并且有什么方法可以解决这个问题,我认为这会让用户感到困惑,无论是否实际关闭,开关都会一直打开。

@Robotic cat:我不知道prepareForsegue是什么......

audioPlayer在主viewController.swift文件中全局设置

相关代码:

import UIKit

class SettingsViewController: UIViewController {



    @IBAction func musicToggle(_ sender: UISwitch)
    {
        audioPlayer.prepareToPlay()
        if (sender.isOn == true)
        {
            playMusic()
        }
        else if (sender.isOn == false)
        {
            stopMusic()
        }
    }

    override func viewDidLoad() {
    super.viewDidLoad()


    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func playMusic()
    {
        audioPlayer.play()
        audioPlayer.numberOfLoops = -1
    }
    func stopMusic()
    {
        audioPlayer.stop()
    }

}

1 个答案:

答案 0 :(得分:1)

好的,我已经通过Robotic Cat

解决了我的问题

我需要做的是将切换的值保存到UserDefault,然后在viewDidAppear函数中获取该值。

这也解决了无论应用何时关闭并重新启动,音乐都会播放的问题,但是,我知道UserDefaults就是解决方案。