首页 > 解决方案 > 通过 cell.detailTextLabel 添加 Eureka PickerInlineRow 值时,form.values() 显示初始文本

问题描述

TLDR;当我尝试从表单中打印出值时,文本变为初始文本

点击行时,我以编程方式输入数组中的第一项。这会填充单元格的值,我可以移动到不同的行。

        let fruit = ["Apple", "Peach", "Pear"]
        <<< PickerInlineRow<String>(){
            $0.title = "Fruits"
            $0.options = fruit
            $0.tag = "pickerTag"
            $0.value = "Select your favorite"
        }
        .onExpandInlineRow({ (cell, inlineRow, row) in
            cell.detailTextLabel?.text = fruit[0]
        })

当我单击“查看”按钮时,我尝试打印来自 pickerRow 的响应,但我没有得到单元格中的实际内容,我得到初始文本的响应(即选择您喜欢的)

    <<< ButtonRow("Review") {
       $0.title = "Review"
    }
    .onCellSelection { [weak self] (cell, row) in
        self?.printoutValues()
    }

在 printoutValues 函数中

   let values = form.values()
   print("picklerValue: \(values["pickerTag"] as? String)")

如果用户实际上移动了选择器视图,而不是仅仅点击该行然后到下一行,那么该值将被正确打印。

当用户第一次点击该行并保存它时,如何填充该行?

谢谢

标签: swiftxcodeeureka-forms

解决方案


我相信这只会在较新版本的 Eureka 中停止工作,但无论如何我想通了。

.onExpandInlineRow

你必须添加inlineRow.value = fruit[0]


推荐阅读