【发布时间】:2020-05-09 02:42:06
【问题描述】:
我在 NavigationView 和列表中使用 ForEach,并结合了当用户使用 .onDelete() 删除行时调用的函数,如下所示。
struct PeriodListView: View {
@ObservedObject var theperiodlist = ThePeriodList()
@EnvironmentObject var theprofile: TheProfile
@State private var showingAddPeriod = false
var dateFormatter: DateFormatter {
let formatter = DateFormatter()
formatter.dateStyle = .long
return formatter
}
var body: some View {
NavigationView {
List {
ForEach(theperiodlist.periods) {period in
PeriodRow(period: period)
}
.onDelete(perform: removePeriods)
}
.navigationBarTitle("Periods")
.navigationBarItems(trailing:
Button(action: {self.showingAddPeriod = true}) {
Image(systemName: "plus")
}
)
.sheet(isPresented: $showingAddPeriod) {
AddPeriod(theperiodlist: self.theperiodlist).environmentObject(self.theprofile)
}
}
}
func removePeriods(at offsets: IndexSet) {
AdjustProfileRemove(period: theperiodlist.periods[XXX])
theperiodlist.periods.remove(atOffsets: offsets)
}
我有一个单独的函数 (AdjustProfileRemove(period)),我想用删除的句点作为变量来调用它 - 例如我想在 AdjustProfileRemove(period: theperiodlist.periods[XXX]) 中找到 XXX。有没有一种简单的方法可以做到这一点(我从 IndexSet 猜测)还是我错过了一些基本的东西?
谢谢。
【问题讨论】:
-
我有点不清楚你在问什么。您能否概述一下
AdjustProfileRemove(_ : Period)函数? -
我刚开始使用 SwiftUI 并尝试构建我的第一个项目。 AdjustProfileRemove(_ : Period) 函数将 Period() 作为输入(它们是 theperiodlist.periods-list 中的元素)并返回一组我想要使用的整数。所以我正在寻找当用户从 NavigationView 中删除特定 Period() 时获得的 theperiodlist.periods-list 的索引。我希望这可以澄清?