보기 컨트롤러간에 변경 한 후에 UISwitch의 상태를 저장하고 싶습니다. 어떤 도움이라도 대단히 감사하겠습니다! 스위치의 경우 백그라운드에서로드SWIFT 4에서 UISwitch의 상태를 저장하는 방법은 무엇입니까?
@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()
}
}
그리고 두 번째보기 컨트롤러 또는 전혀 음악 :
내가 다른보기 컨트롤러에서 배경 음악을 제어하기 위해, UISwitch으로 첫 번째보기 컨트롤러가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()
}
: 나는 음악과 함께 클래스가 또한
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()
}
}
}
: ON 또는 OFF입니다 0
}
이제보기 컨트롤러 사이의 배경 음악이 완벽하게 작동하며 켜고 끌 수는 있지만 불행히도 UISwitch의 현재 상태는 저장하지 않으며 항상 입력 할 때 First View Controller에서 스위치의 상태는 On입니다.
또한 슬라이더에 어떻게 적용 할 수 있는지 생각해보십시오.
도움이 될 것입니다.
감사
MusicHelper는 모달로 표시됩니까? –
감사합니다. "ViewControllers를 변경할 때 UISwitch 상태를 유지하는 방법"에서 해결책을 찾았습니다. 그것은 내가 찾고 있었던 바로 그 것이었다! – Manu