根据MultipleSelectorRow中的值启用/禁用行

时间:2016-04-01 16:21:53

标签: ios swift swift2.2 eureka-forms

这是一个与名为Eureka的Swift开源项目有关的问题,我在这里发布了这个问题,因为他们在这里监控他们的标签。

我创建了一个表格MultipleSelectorRow,然后是TextRow。默认情况下禁用TextRowMultipleSelectorRow显示了一个选项列表。

form
    +++ Section()
    <<< MultipleSelectorRow<String>("Lead") {
        $0.title = "Lead"
        $0.options = ["Yahoo", "Yelp", "Google", "Referral or Other"]
    }
    .onPresent { from, to in
        to.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .Done, target: from, action: #selector(ViewController.multipleSelectorDone(_:)))
    }
    <<< TextRow("Referral") {
        $0.title = "Note Referral or Other"
        $0.disabled = "$Lead != 'Referral or Other'"
    }

我想要的是如果用户选择最后一个选项推荐或其他,我希望启用TextRow

我上面的当前实现不会这样做。它保持禁用状态。我在这里做错了什么?

1 个答案:

答案 0 :(得分:2)

根据定义,MultipleSelectorRow<T>Set<T>作为值类型,并且您似乎错误地期望String值。

说过你应该尝试使用这个谓词......

$0.disabled = "NOT $Lead contains 'Referral or Other'"

或者.. ..

$0.hidden = Condition.Function(["Lead"]) { form in
        if let r1 : MultipleSelectorRow <String> = form?.rowByTag("tag1") {
            return r1.value.contains("Referral or Other") == false
        }
        return false
}