Eurekaで作成する行には、タグを付けることができます。
今回はタグを付けて、あとからRow値を取得する方法を紹介します。
Eurekaについては、本ブログのメニューから[ライブラリ]-[Eureka]を選択して参照ください。
Xcode:9.4.1
Swift:4.1.2
行にタグを設定するのは簡単です。
tagプロパティに、任意のタグ名を付けるだけです。
以下の例では、tagプロパティに”team”を設定しています。
form +++ Section("チーム設定") <<< TextRow { row in row.tag = "team" row.title = "チーム名" row.placeholder = "チーム名を入力" }
タグを使用して値を取得するには、はじめに form.rowBy(tag: タグ名) を使用して行全体の情報を取得します。次にvalueプロパティを使用して値を取得します。
例えば、保存ボタンをタップした時に行の値を取得したい場合は、以下の様にします。
この例では、タグ名「team」を使用して値を取得しています。
// 保存ボタンをタップしたときのアクション @objc func tappedSaveButton() { let teamRow = form.rowBy(tag: "team") as! TextRow let name = teamRow.value! print(name) }
Formのvaluesメソッドを使用すると、タグが設定されている行の値を全て取得することができます。
以下に例を示します。
この例では、valuesメソッドで全ての行を取得後に、タグ名を指定して任意の行の値を取得しています。
// 全てのRowの値を取得 let values = form.values() // 「team」というタグが設定された行の値を取得する let name = values["team"] as! String