我想访问尤里卡形式的删除行功能,但我找不到如何做到这一点。 原因是我有一个 i 变量来跟踪我有多少行,因此当删除一行时我的表单会中断。
这就是我的代码中当前实现的样子:
+++ MultivaluedSection(multivaluedOptions: [.Reorder, .Insert, .Delete], header: "Exercises", footer: "List of Exercises for workout"){
$0.addButtonProvider = {section in
return ButtonRow(){
$0.title = "Add Another Exercise"
self.i+=1
}
}
$0.multivaluedRowToInsertAt = { index in
return TextRow() {
$0.title = "Exercise \(self.i) Name"
$0.tag = "Exercise \(self.i) Name"
self.i+=1
}
}
$0 <<< TextRow(){ //change this to SuggestionRow later
$0.title = "Exercise \(self.i) Name"
$0.tag = "Exercise \(self.i) Name"
$0.add(ruleSet: strictRules)
}
}
我正在寻找的是这样的:
$0.multivaluedRowToDeleteAt = { index in
self.i-=1
}
这样的事情存在吗?如果没有,是否有其他方法可以在提交时获取此多值部分的行数?
要检测哪一行已被删除,请使用此函数
rowsHaveBeenRemoved
,这应该在主表单构建器之外调用,例如:
override func viewDidLoad() {
// Build form
self.formbuilder()
}
func formbuilder(){
form +++ Section("Quest example title"){ row in
row.tag = "sectionname"
}
<<< TextRow("sometextrowtag"){ row in
row.title = "Sample Title Name"
}
}
override func rowsHaveBeenRemoved(_ rows: [BaseRow], at indexes: [IndexPath]) {
super.rowsHaveBeenRemoved(rows, at: indexes)
// You can perform other actions based on this e.g., getting value and the likes.
for i in rows {
print("Base value is \(i.baseValue)")
}
}
在我们的其中一个应用程序中积极使用。希望有帮助。