私は次の簡単なコードでTabbedView
を構築しようとしています:
TabbedView {
Text("Hello world")
.tabItemLabel(Text("Hello"))
Text("Foo bar")
.tabItemLabel(Text("Foo"))
}
実行すると、両方のタブが表示されて有効になりますが、2番目のタブの( "Foo")コンテンツは空白です。
タグを追加してみてください:
TabbedView {
Text("Hello world")
.tabItem { Text("Hello") }
.tag(0)
Text("Foo bar")
.tabItem { Text("Foo") }
.tag(1)
}
最新バージョンではTabView
を使用する必要があります:
TabView {
AnyView()
.tabItem {
Text("Label 1")
}
AnyView()
.tabItem {
Text("Label 2")
}
}
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)
}
}
}
ここで、「タブ2」をタップすると、「タブ2!」が表示されます。空白の画面ではなく、画面上。
これはXcode 11.0 beta 2(11M337n)、macOS Catalina 10.15 Beta(19A487l)を使用していました。
Xcode GMでは、TabbedViewの名前が TabView に変更されました。これがSwiftUIでタブバーを作成する正しい方法です:
TabView {
Text("Hello world")
.tabItem { Text("Hello") }
.tag(0)
Text("Foo bar")
.tabItem { Text("Foo") }
.tag(1)
}
//この方法を試してください。ただし、SFシンボルのアイコンは使用できません。//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)
}
}
}
//この方法を試してください。ただし、SFシンボルのアイコンは使用できません。//icons8.comのアイコンを使用してくださいstruct ContentView:View {
var body:一部のビュー{
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)
}
}
}