IT アプリ開発

【SwiftUI】タブでViewを切り替える

2021年6月8日

よくアプリで見かけるような同じカテゴリーの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")}
              
        }
    }
}

以下のように表示されます。

-IT, アプリ開発
-,

© 2024 Yosshi Labo. Powered by AFFINGER5