【发布时间】:2021-06-28 19:51:51
【问题描述】:
我有多个按钮,根据按下的按钮,我希望根据按下的按钮打开工作表并转到某个视图。我有这个工作在一定程度上,除了有一个我无法找到解决方案的问题。我按下的第一个按钮不起作用。它只是显示了列表中由下面的@State var CurrentSheetView 声明的第一个任务:
@State var showingSheet = false
@State var CurrentSheetView: Int = 0
如果您继续拉下工作表并重新选择您第一次按下的按钮,它会执行相同的操作。但是,如果您选择另一个按钮,则可以。之后,所有按钮都按预期工作。为什么会这样?
这是我的另一个代码,与第一对 @States 的另一个视图不同:
ButtonToTrackView(tasknumber: SuggestedNumber1, newsheetview: "SuggestedNumber1")
ButtonToTrackView(tasknumber: SuggestedNumber2, newsheetview: "SuggestedNumber2")
ButtonToTrackView(tasknumber: SuggestedNumber3, newsheetview: "SuggestedNumber3")
ButtonToTrackView(tasknumber: SuggestedNumber4, newsheetview: "SuggestedNumber4")
ButtonToTrackView(tasknumber: SuggestedNumber5, newsheetview: "SuggestedNumber5")
ButtonToTrackView(tasknumber: SuggestedNumber6, newsheetview: "SuggestedNumber6")
.sheet(isPresented: $showingsheet, content: {
DetailedTrackView(sfsymbolname: task[CurrentSheetView].sfsymbolname, taskname: task[CurrentSheetView].taskname, taskdetails: task[CurrentSheetView].taskdescription, tokencount: task[CurrentSheetView].tokencount, DailyGoalProgress: $DailyGoalProgress, TabSelection: $TabSelection)
})
这是上面使用的函数ButtonToTrackView:
func ButtonToTrackView(tasknumber: Int, newsheetview: String) -> some View {
Button(action: { CurrentSheetView = tasknumber; showingsheet.toggle(); print(CurrentSheetView); print(showingsheet)}, label: {
TrackBlockView(sfimagename: task[tasknumber].sfsymbolname, taskname: task[tasknumber].taskname, tokencount: String(task[tasknumber].tokencount))
})
}
“建议数字”是随机生成的@States,用于从可能的任务列表中进行选择。
感谢您阅读本文,我们将不胜感激。
【问题讨论】:
标签: ios swift function button swiftui