SwiftUI TabbedView 只显示第一个选项卡的内容
SwiftUI TabbedView only shows first tab's content
我正在尝试使用以下简单代码构建 TabbedView
:
TabbedView {
Text("Hello world")
.tabItemLabel(Text("Hello"))
Text("Foo bar")
.tabItemLabel(Text("Foo"))
}
当 运行 时,两个选项卡都可见并启用,但第二个选项卡 ("Foo") 的内容为空。
尝试添加标签:
TabbedView {
Text("Hello world")
.tabItem { Text("Hello") }
.tag(0)
Text("Foo bar")
.tabItem { Text("Foo") }
.tag(1)
}
我能够通过添加 selection
状态变量并将其传递给选择来解决此问题:
struct ContentView : View {
@State private var selection = 1
var body: some View {
TabbedView(selection: $selection) {
Text("Tab 1!").tabItemLabel(
Text("Tab 1")).tag(1)
Text("Tab 2!").tabItemLabel(Text("Tab 2")).tag(2)
}
}
}
现在,点击 "Tab 2" 将在屏幕上显示 "Tab 2!",而不是空白屏幕。
这是使用 Xcode 11.0 beta 2 (11M337n),macOS Catalina 10.15 Beta (19A487l)。
尝试这种方式,但您不能使用来自 SF Symbols 的图标,请使用来自 //icons8.com 或其他平台的图标。或观看本教程 https://www.youtube.com/watch?v=3PfCU5h5z94
struct ContentView : View {
var body : some View {
TabbedView {
Living_R()
.tabItemLabel(VStack {
Image("home")
Text("Home")
}).tag(0)
ContentView()
.tabItemLabel(VStack {
Image("search")
Text("Search")
}).tag(1)
Text("Info")
.tabItemLabel(VStack {
Image("page")
Text("Doc")
}).tag(2)
}
}
}
在最新版本中你应该使用TabView
:
TabView {
AnyView()
.tabItem {
Text("Label 1")
}
AnyView()
.tabItem {
Text("Label 2")
}
}
在 Xcode GM 中,TabbedView 已重命名为 TabView。那么现在在 SwiftUI 中创建标签栏的正确方法是:
TabView {
Text("Hello world")
.tabItem { Text("Hello") }
.tag(0)
Text("Foo bar")
.tabItem { Text("Foo") }
.tag(1)
}
我正在尝试使用以下简单代码构建 TabbedView
:
TabbedView {
Text("Hello world")
.tabItemLabel(Text("Hello"))
Text("Foo bar")
.tabItemLabel(Text("Foo"))
}
当 运行 时,两个选项卡都可见并启用,但第二个选项卡 ("Foo") 的内容为空。
尝试添加标签:
TabbedView {
Text("Hello world")
.tabItem { Text("Hello") }
.tag(0)
Text("Foo bar")
.tabItem { Text("Foo") }
.tag(1)
}
我能够通过添加 selection
状态变量并将其传递给选择来解决此问题:
struct ContentView : View {
@State private var selection = 1
var body: some View {
TabbedView(selection: $selection) {
Text("Tab 1!").tabItemLabel(
Text("Tab 1")).tag(1)
Text("Tab 2!").tabItemLabel(Text("Tab 2")).tag(2)
}
}
}
现在,点击 "Tab 2" 将在屏幕上显示 "Tab 2!",而不是空白屏幕。
这是使用 Xcode 11.0 beta 2 (11M337n),macOS Catalina 10.15 Beta (19A487l)。
尝试这种方式,但您不能使用来自 SF Symbols 的图标,请使用来自 //icons8.com 或其他平台的图标。或观看本教程 https://www.youtube.com/watch?v=3PfCU5h5z94
struct ContentView : View {
var body : some View {
TabbedView {
Living_R()
.tabItemLabel(VStack {
Image("home")
Text("Home")
}).tag(0)
ContentView()
.tabItemLabel(VStack {
Image("search")
Text("Search")
}).tag(1)
Text("Info")
.tabItemLabel(VStack {
Image("page")
Text("Doc")
}).tag(2)
}
}
}
在最新版本中你应该使用TabView
:
TabView {
AnyView()
.tabItem {
Text("Label 1")
}
AnyView()
.tabItem {
Text("Label 2")
}
}
在 Xcode GM 中,TabbedView 已重命名为 TabView。那么现在在 SwiftUI 中创建标签栏的正确方法是:
TabView {
Text("Hello world")
.tabItem { Text("Hello") }
.tag(0)
Text("Foo bar")
.tabItem { Text("Foo") }
.tag(1)
}