Swift: TabView中的if语句
Swift: If statement in TabView
这是我的 TabView 代码:
struct HomeScreen: View {
private enum Tab: Hashable {
case schedule
case messaging
case home
case resources
case settings
}
@State private var selectedTab: Tab = .home
var body: some View {
TabView(selection: $selectedTab) {
Schedule()
.tag(Tab.schedule)
.tabItem {
Label("Schedule", systemImage: "calendar")
}
Messaging()
.tag(Tab.messaging)
.tabItem {
Label("Messaging", systemImage: "bubble.left")
}
Dashboard()
.tag(Tab.home)
.tabItem {
Label("Dashboard", systemImage: "note")
}
Resources()
.tag(Tab.resources)
.tabItem {
Label("Resources", systemImage: "folder")
}
Settings()
.tag(Tab.settings)
.tabItem {
Label("Settings", systemImage: "gear")
}
}
.id(selectedTab)
}
}
我的主要问题是,当您单击“设置”选项卡时,如何导入这样的内容:
var array = ["email1", "email2"]
if array.contains(userEmail) {
AdminSettings()
} else {
Settings()
}
此操作的最终目标是检测用户是否是基于阵列的“管理员”,并将他们带到与正常设置不同的页面。
你可以用Group
,比如
Resources()
.tag(Tab.resources)
.tabItem {
Label("Resources", systemImage: "folder")
}
Group {
var array = ["email1", "email2"]
if array.contains(userEmail) {
AdminSettings()
} else {
Settings()
}
}
.tag(Tab.settings)
.tabItem {
Label("Settings", systemImage: "gear")
}
这是我的 TabView 代码:
struct HomeScreen: View {
private enum Tab: Hashable {
case schedule
case messaging
case home
case resources
case settings
}
@State private var selectedTab: Tab = .home
var body: some View {
TabView(selection: $selectedTab) {
Schedule()
.tag(Tab.schedule)
.tabItem {
Label("Schedule", systemImage: "calendar")
}
Messaging()
.tag(Tab.messaging)
.tabItem {
Label("Messaging", systemImage: "bubble.left")
}
Dashboard()
.tag(Tab.home)
.tabItem {
Label("Dashboard", systemImage: "note")
}
Resources()
.tag(Tab.resources)
.tabItem {
Label("Resources", systemImage: "folder")
}
Settings()
.tag(Tab.settings)
.tabItem {
Label("Settings", systemImage: "gear")
}
}
.id(selectedTab)
}
}
我的主要问题是,当您单击“设置”选项卡时,如何导入这样的内容:
var array = ["email1", "email2"]
if array.contains(userEmail) {
AdminSettings()
} else {
Settings()
}
此操作的最终目标是检测用户是否是基于阵列的“管理员”,并将他们带到与正常设置不同的页面。
你可以用Group
,比如
Resources()
.tag(Tab.resources)
.tabItem {
Label("Resources", systemImage: "folder")
}
Group {
var array = ["email1", "email2"]
if array.contains(userEmail) {
AdminSettings()
} else {
Settings()
}
}
.tag(Tab.settings)
.tabItem {
Label("Settings", systemImage: "gear")
}