Swift TabViewの引数「selection」を利用するサンプル

環境
Swift version 5.2.3 (swift-5.2.3-RELEASE)

概要
変数を用意します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
@State var selected = value
@State var selected = value
@State var selected = value

TabViewの引数「selection」に用意した変数をバインドします。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
TabView(selection: $selected) { 処理コード]
TabView(selection: $selected) { 処理コード]
TabView(selection: $selected) { 処理コード]

TabView内のタブにtag修飾子を付与し、tag修飾子内に値を指定します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
TabView(selection: $selected) {
FirstTab()
.tag(value1) //tagを付与
SecondTab()
.tag(value2)
処理コード
}
TabView(selection: $selected) { FirstTab() .tag(value1) //tagを付与 SecondTab() .tag(value2) 処理コード }
TabView(selection: $selected) {
  FirstTab()
    .tag(value1) //tagを付与
  SecondTab()
    .tag(value2)
  処理コード
}

サンプルコード

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
struct ContentView: View {
@State var selected = "First"
var body: some View {
TabView(selection: $selected) {
Text("The First Tab")
.onTapGesture {
self.selected = "Second"
}
.tabItem {
Image(systemName: "1444.square.fill")
Text("First")
}
.tag("First")
Text("The Second Tab")
.onTapGesture {
self.selected = "Third"
}
.tabItem {
Image(systemName: "233.square.fill")
Text("Second")
}
.tag("Second")
Text("The Third Tab")
.onTapGesture {
self.selected = "First"
}
.tabItem {
Image(systemName: "3444.square.fill")
Text("Third")
}
.tag("Third")
}
}
}
struct ContentView: View { @State var selected = "First" var body: some View { TabView(selection: $selected) { Text("The First Tab") .onTapGesture { self.selected = "Second" } .tabItem { Image(systemName: "1444.square.fill") Text("First") } .tag("First") Text("The Second Tab") .onTapGesture { self.selected = "Third" } .tabItem { Image(systemName: "233.square.fill") Text("Second") } .tag("Second") Text("The Third Tab") .onTapGesture { self.selected = "First" } .tabItem { Image(systemName: "3444.square.fill") Text("Third") } .tag("Third") } } }
struct ContentView: View {
    @State var selected = "First"
    var body: some View {
        TabView(selection: $selected) {
            Text("The First Tab")
                .onTapGesture {
                    self.selected = "Second"
                }
                .tabItem {
                    Image(systemName: "1444.square.fill")
                    Text("First")
                }
                .tag("First")
            Text("The Second Tab")
                .onTapGesture {
                    self.selected = "Third"
                }
                .tabItem {
                    Image(systemName: "233.square.fill")
                    Text("Second")
                }
                .tag("Second")
            Text("The Third Tab")
                .onTapGesture {
                    self.selected = "First"
                }
                .tabItem {
                    Image(systemName: "3444.square.fill")
                    Text("Third")
                }
                .tag("Third")
        }
    }
}

 

Swift

Posted by arkgame