swift - Eureka in swift List Selection Selected Value 导航离开时自动取消选择
问题描述
我正在实施尤里卡列表选择。在语言选择中,有 7 个值可供选择。值 1 到 6 是好的。但是,当最后一个被选中并且用户离开 VC 时,它会自动取消选择。我想知道我的代码是否有问题。我试图“硬编码” viewWillAppear 上的最后一个选择,这样应用程序才能顺利运行,是的。但这有点奇怪,因为没有选择任何选择。我是编程初学者,非常感谢任何帮助。谢谢
import Eureka
class ListSectionsController: FormViewController {
let defaults = UserDefaults.standard
var languageSelected = "English (default)"
override func viewDidAppear(_ animated: Bool) {
defaults.set(languageSelected, forKey: "LanguageSelection")
}
override func viewWillAppear(_ animated: Bool) {
if let language = defaults.string(forKey: "LanguageSelection") {
if language == "Korean 한국어" {
languageSelected = language
}
}
}
override func viewDidLoad() {
super.viewDidLoad()
let languageSelections = ["English (default)", "Spanish", "Japanese 日本語", "Chinese Mandarin 普通话", "Indonesian", "Dutch - het Nederlands", "Korean 한국어"]
form +++ SelectableSection<ImageCheckRow<String>>() { section in
section.header = HeaderFooterView(title: "Language Selection")
}
for option in languageSelections {
if let language = self.defaults.string(forKey: "LanguageSelection") {
self.form.setValues([language : language])
} else {
self.form.setValues([languageSelected : languageSelected])
}
form.last! <<< ImageCheckRow<String>(option){ lrow in
lrow.title = option
lrow.selectableValue = option
lrow.value = nil
}
}
}
override func valueHasBeenChanged(for row: BaseRow, oldValue: Any?, newValue: Any?) {
if row.section === form[0] {
if let selected = (row.section as! SelectableSection<ImageCheckRow<String>>).selectedRow()?.baseValue {
print("Selected: \(selected)")
languageSelected = selected as! String
defaults.set(languageSelected, forKey: "LanguageSelection")
}
} else if row.section === form[1] {
print("Mutiple Selection:\((row.section as! SelectableSection<ImageCheckRow<String>>).selectedRows().map({$0.baseValue}))")
}
}
}
解决方案
推荐阅读
- python - os.path.basename(__file__) 获取脚本名称,而不是文件
- python - 熊猫数据框的行到列的值
- visual-studio-code - 始终运行特定文件,而不是 VS 代码中的当前文件
- javascript - 如何根据所说的内容使机器人不发送多个响应(Discord.js)
- python - {FieldError}TimeField 的不支持查找“时间”或不允许加入该字段
- c++ - 以下 3 种定义对象的方法是否相同?
- transparency - obj 的 mtl 文件中的透明 png(alpha 通道)支持
- c# - 从 html.actionlink 在外部页面上调用 jQuery 函数
- flask - Flask JWT GraphQL - 设置访问/刷新 cookie
- google-cloud-platform - GCP 删除计算引擎 - 虚拟机实例 - 不启用结算