概要
基本的には、Swift×Eurekaで簡単に設定画面を作るを参考にして、一部Swift4(Swift3)に対応させました。
UserDefaultsのメソッド名が大きく変更されたので、その対応のみです。
ライブラリ
コード
import UIKit
import Eureka
class SettingsViewController : FormViewController {
// インスタンスの作成
let userDefault = UserDefaults.standard
override func viewDidLoad() {
super.viewDidLoad()
form +++ Section("通知時刻の設定")
<<< SwitchRow("switchRowTag") {
$0.title = "通知時刻の設定"
// 読み込み
let temp:Bool = self.userDefault.bool(forKey: "Notify")
$0.value = temp
}.onChange{row in
self.userDefault.set(row.value, forKey: "Notify")
}
<<< TimeRow(){
$0.hidden = Condition.function(["switchRowTag"], { form in
return !((form.rowBy(tag: "switchRowTag") as? SwitchRow)?.value ?? false)
})
$0.title = "通知時刻"
// 読み込み
if let temp:Any = self.userDefault.object(forKey: "Time") {
$0.value = temp as? Date
}
}.onChange{row in
// 保存
self.userDefault.set(row.value, forKey: "Time")
}
}
}
参考文献
[Swift 3.0] Swift3.0で、NSUserDefaultsはUserDefaultsになった
【iOS】UserDefaultsをSwiftらしく使う