如何访问 Eureka 表单的多值行中的删除行功能

问题描述 投票:0回答:1

我想访问尤里卡形式的删除行功能,但我找不到如何做到这一点。 原因是我有一个 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
 }

这样的事情存在吗?如果没有,是否有其他方法可以在提交时获取此多值部分的行数?

swift eureka-forms
1个回答
0
投票

要检测哪一行已被删除,请使用此函数

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)")
    }
}

在我们的其中一个应用程序中积极使用。希望有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.