よくアプリで見かけるような同じカテゴリーのViewを切り分けるタブの実装について記載していきます。
カレンダーアプリやダッシュボードアプリなどで、
モードを切り替えたりする場合に、タブでViewを切り替えるような方法です。
タブのサンプルコード
タブはSwiftUIでは、Picker関数を用いて実装することになります。
Pickerでタブを表示し、そして切り替えた時別のViewを表示することになるので、
@StateによってViewを再構築するようなコードを記載する必要があります。
import SwiftUI @main struct AppMain: App { @UIApplicationDelegateAdaptor (AppDelegate.self) var appDelegate class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool { return true } } var body: some Scene { WindowGroup { ContentView() } } } struct ContentView: View { // デフォルトのタグ @State private var selectedIndex = 0 var body: some View { VStack { Picker("", selection: self.$selectedIndex) { Text("First") .tag(0) Text("Second") .tag(1) Text("Third") .tag(2) } .pickerStyle(SegmentedPickerStyle()) if(self.selectedIndex == 0){Text("First View")} if(self.selectedIndex == 1){Text("Second View")} if(self.selectedIndex == 2){Text("Third View")} } } }
実際の画面
以下のように表示されます。