Когда значение Eureka PickerInlineRow добавляется через cell.detailTextLabel, form.values ​​() показывает исходный текст - PullRequest
0 голосов
/ 31 марта 2020
  • Среда: Eureka: 5.2.1 Xcode: 11.4 iOS версия: 13.4

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 ​​fun c

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

Если пользователь фактически перемещает представление выбора вместо того, чтобы просто нажать на строку и затем перейти к следующей строке, тогда значение печатается правильно.

Как заполнить строку, когда пользователь впервые коснется строки и сохранит ее?

спасибо

1 Ответ

0 голосов
/ 31 марта 2020

Я считаю, что это перестало работать только в новых версиях Eureka, но в любом случае я понял это.

В .onExpandInlineRow

необходимо добавить inlineRow.value = fruit[0]

...