Скрытие строки в Eureka в зависимости от того, содержит ли она значение или нет - PullRequest
0 голосов
/ 19 июня 2020

Я создал форму с помощью Eureka и задавался вопросом, как скрыть строку или раздел в зависимости от того, содержит ли он значение или нет:

form
            +++ Section("Car")
            <<< TextRow() {
                $0.title = car?.name
            }
            +++ Section("Car color")
            <<< TextRow() {
                $0.title = car?.color
            }
            +++ Section("Car description")
            <<< TextRow() {
                $0.title = car?.description
                $0.cell.textLabel?.numberOfLines = 0
            }
            +++ Section("Car brand")
            <<< TextRow() {
                $0.title = car?.brandName
            }
          +++ Section("Comment")
            <<< TextRow() {
            $0.tag = "Comment"
               $0.title = car?.internComment
                $0.cell.textLabel?.numberOfLines = 0
                $0.hidden = Condition.function([])
                { form in
                    if (form.rowBy(tag: "Comment") as? TextRow) != nil {
                       return false
                    }
                    return true
                }
        }

Я пробовал с

$0.hidden = Condition.function([])
                { form in
                    if (form.rowBy(tag: "Comment") as? TextRow) != nil {
                       return false
                    }
                    return true
                }

, но он скрывает его независимо от того, содержит ли он значение или нет.

1 Ответ

1 голос
/ 19 июня 2020

Вы проверяете саму строку, проверяете ее значение

$0.hidden = Condition.function([]) { form in
   if (form.rowBy(tag: "Comment") as? TextRow)?.value != nil {
      return false
   }
   return true
}

или короче

$0.hidden = Condition.function([]) { form in
    return !((form.rowBy(tag: "Comment") as? TextRow)?.value ?? false)
}
...