问题描述
我在选项卡视图(它是列表中的第二个选项卡)中有一个视图,该视图显示依赖于该视图的 viewmodel 中的几个变量的三个条件视图之一。
第一个视图是用户选择 (ChooseSeasonLength()
),当它被选中时,它应该显示一个加载屏幕 (LoadingScreen()
),直到设置了一个 featuresSeason,此时它应该显示主视图 (SeasonPage()
):
struct SeasonView: View {
@EnvironmentObject var currentUser: CurrentUserProfile
@Observedobject var seasonGoalsVM: SeasonGoalsviewmodel
var body: some View {
if seasonGoalsVM.featuredSeason != nil {
SeasonPage()
.environmentObject(seasonGoalsVM)
} else if seasonGoalsVM.seasonLength == nil {
ChooseSeasonLength()
.environmentObject(seasonGoalsVM)
} else {
LoadingScreen()
.environmentObject(seasonGoalsVM)
}
}
}
但我遇到的问题是这个 SeasonView()
是 TabView 列表中的第二个项目,每当我点击用户选择时,它不会显示加载屏幕,而是让我回到第一个选项卡- HomePage()
。
当我单击标签列表中的 SeasonView 时,它会将我带到正确的屏幕,但我不知道为什么在 SeasonView 上的初始用户选择会将我带回主页,而不是带我完成正确的流程SeasonView 中的视图。
我读过 TabView 可能有一些问题,但没有看到任何关于此的信息。有谁知道这是否可能是 TabView 的问题?
这是我的初始视图,其中指定了选项卡:
struct HomeView: View {
@StateObject var actionListVM = ActionListviewmodel()
@StateObject var seasonGoalsVM = SeasonGoalsviewmodel()
var body: some View {
TabView {
HomePage(actionListVM: actionListVM)
.tabItem {
Label("Home",systemImage: "house.fill")
}
SeasonView(seasonGoalsVM: seasonGoalsVM)
.tabItem {
Label("Season",systemImage: "scribble.variable")
}
GroupsPage()
.tabItem {
Label("Groups",systemImage: "person.2.fill")
}
FriendsPage()
.tabItem {
Label("Friends",systemImage: "person.crop.circle.badge.plus")
}
}
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)