Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift Eureka中的子表单_Swift_Swift3_Eureka Forms - Fatal编程技术网

Swift Eureka中的子表单

Swift Eureka中的子表单,swift,swift3,eureka-forms,Swift,Swift3,Eureka Forms,我在Swift 3项目中使用Eureka表单框架 我需要使用MultivaluedSection,但我不想从字符串选项数组(如下面的代码)中提取字符串,而是想在显示的控制器中打开一个子窗体(例如,使用TextRow、NumberRow等) 我知道,我可以实现一个自定义的presenter行,但我没有找到一个解决方案来显示自定义presenter行的“子表单” 使用Eureka框架是否可能实现这一点 let multivaluedSection = MultivaluedSection(multi

我在Swift 3项目中使用Eureka表单框架

我需要使用MultivaluedSection,但我不想从字符串选项数组(如下面的代码)中提取字符串,而是想在显示的控制器中打开一个子窗体(例如,使用TextRow、NumberRow等)

我知道,我可以实现一个自定义的presenter行,但我没有找到一个解决方案来显示自定义presenter行的“子表单”

使用Eureka框架是否可能实现这一点

let multivaluedSection = MultivaluedSection(multivaluedOptions: [.Insert, .Delete],
                                                    header: rawField["name"].stringValue,
                                                    footer: "")
multivaluedSection.multivaluedRowToInsertAt = { index in
            return PushRow<String>{
                $0.title = "Tap to select ;)..at \(index)"
                $0.options = ["Option 1", "Option 2", "Option 3"]
            } }
self.form.append(multivaluedSection)
let multivaluedSection=multivaluedSection(多值选项:[.Insert、.Delete],
标题:rawField[“name”]。stringValue,
页脚:“”)
multivaluedSection.multivaluedRowToInsertAt={index in
返回推杆{
$0.title=“点击选择;)…位于\(索引)”
$0.options=[“选项1”、“选项2”、“选项3”]
} }
self.form.append(多值部分)

这可以使用自定义选择器行来完成

你只需要按照说明做一个自定义推行

public final class CustomPushRow: SelectorRow<PushSelectorCell<SomeType>, YourSubFormVC>, RowType {

    public required init(tag: String?) {
        super.init(tag: tag)
        presentationMode = .show(controllerProvider: ControllerProvider.callback {
            return YourSubFormVC(){ _ in }
            }, onDismiss: { vc in
                _ = vc.navigationController?.popViewController(animated: true)
        })
    }
}
公共最终类CustomPushRow:选择Row,RowType{
公共必需的初始化(标记:字符串?){
super.init(tag:tag)
presentationMode=.show(controllerProvider:controllerProvider.callback{
返回您的子表单vc(){uuin}
},onDismiss:{vc in
_=vc.navigationController?.popViewController(动画:true)
})
}
}
YourSubFormVC
是当用户点击行时将显示的VC。它应该符合
TypedRowControllerType
。由于您希望此VC也是一个表单,请使其继承自
FormViewController
,并开始在
viewDidLoad
中构建表单