Swift:如何使用 Eureka 表单生成器获取表单值?

Posted

技术标签:

【中文标题】Swift:如何使用 Eureka 表单生成器获取表单值?【英文标题】:Swift: How to get form values using Eureka form builder? 【发布时间】:2016-06-09 04:03:32 【问题描述】:

我正在使用 Eureka 表单构建器构建表单,但不明白如何获取表单中的值。 They provide instructions in the docs here.

将表单结果传递给字典:

您可能已经注意到结果字典键是行标记值 并且值是行值。只有带有标签值的行才会 添加到字典中。

我的代码:

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"])


这里是制作 dict 的公共函数

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
    

【问题讨论】:

【参考方案1】:

我自己想通了。我并不清楚您需要在要从中检索值的行上设置标签:

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


let dict = form.values(includeHidden: true)

print(dict["NameRow"]) // Prints my name

【讨论】:

以上是关于Swift:如何使用 Eureka 表单生成器获取表单值?的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift Eureka Form 中循环

Swift Eureka 隐藏更改部分

Swift 3 Eureka Forms 更改按钮行字体颜色

Swift 3 Eureka 验证 UILabel 有错误

如何为 iOS 表单使用 Eureka pod 的位置?

从 Eureka 表单的多值部分获取表单值