Swift:如何使用Eureka表单构建器获取表单值?

Sti*_*iño 0 swift eureka-forms

我正在使用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"])

}
Run Code Online (Sandbox Code Playgroud)

而这里是制定法令的公共功能

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
    }
}
Run Code Online (Sandbox Code Playgroud)

Sti*_*iño 6

我自己想通了.我不是很清楚你需要在要从中检索值的行上设置标记:

<<< NameRow() {
    $0.tag = "NameRow"
    $0.title = "Name:"
    $0.value = "My name"
}

let dict = form.values(includeHidden: true)

print(dict["NameRow"]) // Prints my name
Run Code Online (Sandbox Code Playgroud)