如何解决TabView 更新后返回首页
我在选项卡视图(它是列表中的第二个选项卡)中有一个视图,该视图显示依赖于该视图的 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 举报,一经查实,本站将立刻删除。