0

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
    }
}
4

1 に答える 1