我想以模式方式在选项卡栏中显示其中一个视图。 与点击+按钮时Instagram的操作类似。
示例代码:
TabView {
Text("List")
.tabItem {
Image(systemName: "list.bullet")
Text("List")
}
Text("Add") // I would like this view to be presented modally
.tabItem {
Image(systemName: "plus.app.fill")
Text("Add")
}
}
我正在寻找使用TabView
中的SwiftUI
的本地方法。
我知道我可以编写自己的TabBar,但是我想看看是否有人知道如何使用TabView
谢谢
答案 0 :(得分:1)
TabView
提供了一个名为selection
的可选参数,该参数使您可以定义与包含当前选定选项卡的变量的绑定。您使用某种类型表示视图,为TabView
提供对该类型的绑定,然后使用该类型的值标记每个选项卡的视图。您可以根据需要使用Int
,但是由于我希望更明确一些,因此我使用了一个枚举:
struct ContentView: View {
enum Tab {
case list, add
}
@State private var selectedTab: Tab = .list
var body: some View {
TabView(selection: $selectedTab) {
VStack {
Text("List")
Button(action: {
self.selectedTab = .add
}, label: {
Text("Switch to Add tab")
})
}
.tabItem {
Image(systemName: "list.bullet")
Text("List")
}
.tag(Tab.list)
Text("Add") // I would like this view to be presented modally
.tabItem {
Image(systemName: "plus.app.fill")
Text("Add")
}
.tag(Tab.add)
}
}
}