Ios Can';t从外部视图DIDLOAD访问Eureka表单对象
我正在尝试创建一个Eureka表单,用于编辑/创建任务对象。现在,我转到视图并将任务对象作为类变量传递,但由于某些原因,无法从创建表单的viewDidLoad访问它。这意味着我不能给表单赋值。当我为任务类变量创建一个didSet方法时,它最终会被调用,但是表单对象是一个空对象,就像我查看form.values()时一样。但是在viewDidLoad中,它可以工作。有什么建议我遗漏了什么Ios Can';t从外部视图DIDLOAD访问Eureka表单对象,ios,swift,forms,viewdidload,eureka-forms,Ios,Swift,Forms,Viewdidload,Eureka Forms,我正在尝试创建一个Eureka表单,用于编辑/创建任务对象。现在,我转到视图并将任务对象作为类变量传递,但由于某些原因,无法从创建表单的viewDidLoad访问它。这意味着我不能给表单赋值。当我为任务类变量创建一个didSet方法时,它最终会被调用,但是表单对象是一个空对象,就像我查看form.values()时一样。但是在viewDidLoad中,它可以工作。有什么建议我遗漏了什么 var task: Task? { didSet { print("didSet values:", form
var task: Task? { didSet { print("didSet values:", form.values(), "didSet task name", task?.name) } }
override func viewDidLoad() {
super.viewDidLoad()
form +++ Section()
<<< TextRow("name"){
$0.title = "Name"
}
print("viewDidLoad values:", form.values(), "viewDidLoad task name", task?.name)
}
在调试之后,我发现有两个不同的Eureka表单视图实例。所以在挖掘之后,我发现我做了两段同样的事情。一个是从故事板表格视图单元格到表单的序列,另一个是从代码didSelectRowAt和performsgue。有趣的是,当我从调用表单视图的控制器调试prepare(for segue:)时,我没有发现这一点,它应该打印两次输出,但我只看到一次,所以我一直认为我只创建了一个segue
viewDidLoad values: ["name": nil, "deadline": Optional(2017-06-08 19:02:39 +0000)] viewDidLoad task name nil
didSet values: [:] didSet task name Optional("ascasc")