Swift
eureka

Swift×Eurekaで簡単に設定画面を作る

More than 1 year has passed since last update.

背景

私が作ったアプリに設定画面を追加したくなり、色々探してみて簡単に作れたので備忘録として残します。
https://itunes.apple.com/jp/app/dunda/id1072574796?l=en&mt=8

設定画面を作る方法案

とりあえずぐぐってみると、便利そうなライブラリは下記2つくらいでした。
https://github.com/xmartlabs/Eureka
https://github.com/escoz/QuickDialog

QuickDialogはSwiftで実装している記事がなかなか見つからなかったのと、全然更新されていなかったのでEurekaを使うことに。

導入

GitHubのReadMeの下の方にInstallationがあるのでそこ参考にすればいけるかと。

設定画面を作る

まず、Storyboardで設定画面のViewを作成します。適当にSettingsViewControllerとかにしました。対応するSwiftファイルを作成し、下記のようにコードを書きました。

import Foundation
import Eureka


class SettingsViewController : FormViewController{

    let userDefault = NSUserDefaults.standardUserDefaults()
    let itunesURL:String = "itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=xxxx"

    override func viewDidLoad() {
        super.viewDidLoad()

        form +++ Section("通知時刻の設定")
        <<< TimeRow(){
            $0.title = "通知時刻"
            if let temp:AnyObject = self.userDefault.objectForKey("Time") {
                $0.value = temp as? NSDate
            }

            }.onChange{row in
                self.userDefault.setValue(row.value, forKey: "Time")
        }

        form +++ Section()
            <<< LabelRow("Review"){
                $0.title = "AppStoreで評価する"
                }.onCellSelection(){row in
                    self.userDefault.setBool(true, forKey: "Review")
                    let url = NSURL(string:self.itunesURL)
                    let app:UIApplication = UIApplication.sharedApplication()
                    app.openURL(url!)
        }
    }
}

どんな動きをするかは、コードを見ればわかると思いますが、実際触ってみたい方はアプリをインストールしてみてください。どんなアプリかは下記参照。
http://seiya-orz.hatenablog.com/entry/2016/01/17/202834

入力された値は「row.value」に格納されます。ただ、型がわからなかったのでどう扱えばよいか苦しみました。そんなときは「row.value.dynamicType」をprintすればどんな型で格納されているかわかるので、デバッグしてみてください。

詳しい書き方はGitHub見るか、下記サイトを見ればなんとかなると思います。
http://blog.personal-factory.com/2015/12/29/eureka-tutorial/

おわり。