eureka-forms - 使用按钮刷新/重新加载 Eureka PushRow 推送的 ViewController 选项?
问题描述
我在我的项目中使用 Eureka 表单。
我有一个 PushRow ,它显示带有选项列表的默认 SelectorViewController。在推送视图中,我添加了一个 rightBarButtonItem 指向locationSelectorAddButton ... 单击时,这会显示一个 UIAlertController,它应该允许用户向这个推送控制器添加选项。
是否可以在不创建我自己的自定义选择器控制器的情况下使用 UserDefaults 中新保存的选项刷新当前控制器?
let defaults = UserDefaults.standard
func setupForm() {
form
+++ PushRow<String>(K.SESSIONFIELD.location) {
$0.title = K.SESSIONFIELD.location
$0.options = defaults.array(forKey: K.SESSIONFIELD.location) as? [String]
$0.value = sessionResult?.sessionLocation ?? $0.options?.first
}
.onPresent { from, to in
to.navigationItem.rightBarButtonItem = UIBarButtonItem(image: UIImage(named:"add_20pt"), style: UIBarButtonItemStyle.plain, target: from, action: #selector(self.locationSelectorAddButton(_:)))
}
}
locationSelectorAddButton 实现如下:
@objc func locationSelectorAddButton(_ sender: UIBarButtonItem) {
var textField = UITextField()
let alert = UIAlertController(title: "Add New Location", message: "", preferredStyle: .alert)
let action = UIAlertAction(title: "Add", style: .default) { (action) in
var locArray = self.defaults.array(forKey: K.SESSIONFIELD.location) as? [String]
locArray?.append(textField.text!)
self.defaults.set(locArray, forKey: K.SESSIONFIELD.location)
///TODO: somehow refresh the pushed view controller here!!
// self.form.rowBy(tag: K.SESSIONFIELD.location)?.reload()
// print("this is the list of locations currently ...\(locArray)")
// self.tableView.reloadData()
///
}
alert.addTextField { (alertTextField) in
alertTextField.placeholder = "Location name ..."
textField = alertTextField
}
alert.addAction(action)
present(alert, animated:true, completion:nil)
}
解决方案
使用标签属性不会重新加载推送行。您需要实现该方法
cellUpdate { 单元格,row in row.options =(在此处为更新的选项赋值)}
推荐阅读
- javascript - 具有 2 个标题的 AGGrid 布局
- javascript - 在 vue.js 中的方法中修改数据后手表不起作用
- javascript - 如何在 Node/Express Js 的现有 SequelizeInstance 对象数组中添加新的键/值?
- oracle - 在 Oracle DB 中如何避免反编译依赖于 DBLink 的对象?
- node.js - 无法安装克劳迪娅模块
- tabulator - 制表符:拉伸最后一行
- reactjs - 如何将 API 响应数据传递到另一个反应页面
- python - Python:动态文件处理程序并使用数据结构处理它们
- mysql - Mysql 连接查询
- php - 使用 scout 包在 laravel 弹性搜索中找不到索引异常