Eureka フォーム ビルダーでフォームを作成していますが、フォーム内の値を取得する方法がわかりません。こちらのドキュメントに手順が記載されています。
フォームの結果は辞書に渡されます。
お気づきかもしれませんが、結果ディクショナリ キーは行タグ値であり、値は行値です。タグ値を持つ行のみがディクショナリに追加されます。
私のコード:
override func viewDidLoad() {
super.viewDidLoad()
form =
Section()
<<< NameRow() { // NameRow is dictionary key, right?
$0.title = "Name:"
$0.value = "My name" // This is what should be printed
}
let dict = form.values(includeHidden: true)
// PROBLEM: This prints nil
print(dict["NameRow"])
}
そして、ここで辞書を作成するパブリック関数
public func values(includeHidden includeHidden: Bool = false) -> [String: Any?]{
if includeHidden {
return allRows.filter({ $0.tag != nil })
.reduce([String: Any?]()) {
var result = $0
result[$1.tag!] = $1.baseValue
return result
}
}
return rows.filter({ $0.tag != nil })
.reduce([String: Any?]()) {
var result = $0
result[$1.tag!] = $1.baseValue
return result
}
}