【SwiftUI】シンプルな画面遷移をしてみる3

swift
  • 前回はハーフモーダルを試してみたが、今回はフルモーダルにチャレンジ

フルモーダルを表示する場合は、fullScreenCoveモディファイアを使用する。

使い方はsheetモディファイアと同じ。

//
//  ContentView.swift
//  Test
//
//  Created by yuki on 2023/09/17.
//

import SwiftUI

struct ContentView: View {
    
    @State var modalFlg = false
    
    var body: some View {
        Button {
            // ボタンタップごとに表示非表示の切り替えを行う。
            modalFlg.toggle()
        } label: {
            Text("初期画面")
        }
        .fullScreenCover(isPresented: $modalFlg, content: {
            halfView()
        })
    }
}

struct halfView: View {
    // 現在のプレゼンテーションを破棄
    @Environment(\.dismiss) private var dm
    
    var body: some View {
        NavigationView {
            ZStack{
                Color.red
                    .ignoresSafeArea()
                Button {
                    dm()
                } label: {
                    Text("ハーフモーダル")
                        .foregroundColor(.white)
                }
                
            }
        }
    }
}
struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

結果はこの通り、

閉じる場合はボタンタップ(Dismiss)を行う。(スワイプで閉じることはできない)

タイトルとURLをコピーしました