ポジティブ丸メガネ

3年目エンジニアです。

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

私が作ったアプリに設定画面を追加したくなり、色々探してみて簡単に作れたので備忘録として残します。

読んだ。

読んだ。

  • Seiya Mogami
  • 仕事効率化
  • 無料

設定画面を作る方法案

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

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!)
        }
    }
}

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

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


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

終わり。