K M*_*K M 1 swift eureka-forms
我正在使用 SplitViewController 并且在详细信息页面(设置为“定义上下文”)上,用户可以在导航栏中选择“+”,然后我使用 segue 呈现下一个视图控制器“在当前上下文上模态”。在那个视图控制器上,我使用 Eureka,我想使用的行之一是 PushRow。我遇到的问题是,当我在 PushRow 上选择一个选项时,视图(选择 Eureka 生成的选项表)永远不会关闭。选项列表保持全屏。我可以看到 PushRow.onChange 被调用并且它具有正确的值。由于某种原因,最上面的视图不会关闭。
我挖得更深,似乎我需要将 PushRow 的presentationMode 修改为“presentModally”,因为我是从模态中呈现它的。但是,我不确定要为 controllerProvider 放置什么。这是正确的道路吗?如果是这样,正确的语法是什么?我还尝试在 onChange 中重新加载,但这并没有什么不同。
private func getGroupPushRow() -> PushRow<String> {
return PushRow<String>() {
$0.title = "Group"
$0.selectorTitle = "What is the Group?"
$0.noValueDisplayText = "Select a Group..."
$0.options = self.getGroups()
$0.presentationMode = PresentationMode.presentModally(controllerProvider: ControllerProvider<VCType>, onDismiss: { () in
})
$0.onChange({ (row) in
print("in onchange \(row.value)")
// row.reload()
// self.tableView.reloadData()
})
}
}
Run Code Online (Sandbox Code Playgroud)
我最终想出了一个解决方案,所以我在这里发布它希望能帮助其他人。离开上面的例子,用这个代码替换presentationMode & onChange。请注意,如果您在 PushRow 中使用除 String 之外的另一个对象,则 PushSelectorCell 中的类型应该是该类型。
$0.presentationMode = PresentationMode.presentModally(
controllerProvider: ControllerProvider.callback {
return SelectorViewController<SelectorRow<PushSelectorCell<String>>> { _ in }
},
onDismiss: { vc in
vc.dismiss(animated: true)
})
$0.onChange({ (row) in
row.reload()
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
791 次 |
| 最近记录: |