Eureka - скрытие строки в зависимости от значения ActionSheetRow - PullRequest
0 голосов
/ 23 июня 2018

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

 func testForm(){
        form +++ Section("Test")
            <<< TextRow("Your Name"){
                $0.placeholder = "Enter Your Name"
        }
            <<< ActionSheetRow<String>("placeOfLiving") {
                $0.title = "Continent"
                $0.selectorTitle = "Where do you live?"
                $0.options = ["Antartica","Australia","Africa", "Asia", "Europe", "North America", "South America"]

        }
            <<< ActionSheetRow<String>("swimming") {
                $0.hidden = Condition.function([])
                { form in
                    if let section = form.rowBy(tag: "placeOfLiving") as? ActionSheetRow<String> {
                        if section.value == "Antartica" {
                            return true
                        }
                    }
                    return false
                }
                $0.title = "Swimming"
                $0.selectorTitle = "Where do you like to swim?"
                $0.options = ["Pool","Beach","Lake", "River"]

        }

    }

Как бы я мог проверить значение ActionSheetRow и затем скрыть следующую строку? Я пытался разными способами, как сделать эту проверку, но не могу найти похожий сценарий. Любые отзывы приветствуются

1 Ответ

0 голосов
/ 23 июня 2018

Вам необходимо передать tag из rows, который вы хотите проверить для значений внутри hidden function array, как показано ниже.

$0.hidden = Condition.function(["rowTag"])

Итак, ваш код станет,

$0.hidden = Condition.function(["placeOfLiving"])
   { form in
      if let row = form.rowBy(tag: "placeOfLiving") as? ActionSheetRow<String> {
          return section.value == "Antartica"
       }
       return false
   }
...