首页 > 解决方案 > Eureka-ios:如何通过 if 语句更改 $0.options

问题描述

我需要根据用户选择的另一行更改一行的选项。

我使用这个代码,它没有改变。

<<< PushRow<String>(kEncryption) {
                $0.title = "Encryption"
                if let r1 : PushRow<aType> = form.rowBy(tag: kProxyFormType), let a = r1.value?.isA, let b = r1.value?.isB {
                        print(a)
                        if (a) {
                            $0.options = ["1","2","3"]
                        }
                        else if (b) {
                            $0.options = ["4","5","6"]
                        }
                    }

无论我更改 aType Row,pushrow 都将始终为空。
我添加了一个打印函数添加这个函数根本不被调用。
如何更改此代码使其工作?

标签: swifteureka-forms

解决方案


PushRow<String>反过来,在 的onChange闭包中更改 的选项PushRow<aType>,例如

<<< PushRow<aType>(kProxyFormType) { 
   ...
}.onChange { row in 
    if let encryptionRow = self.form.rowBy(tag: kEncryption) as? PushRow<String> {
       if row.value?.isA {
           encryptionRow.options = ["1","2","3"]
       } else if row.value?.isB {
           encryptionRow.options = ["4","5","6"]
       }
    }
}

推荐阅读