Swift
eureka

Eureka で設定画面を作りたい Swift

概要

基本的には、Swift×Eurekaで簡単に設定画面を作るを参考にして、一部Swift4(Swift3)に対応させました。
UserDefaultsのメソッド名が大きく変更されたので、その対応のみです。

ライブラリ

https://github.com/xmartlabs/Eureka

コード

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らしく使う