Tunko Development Diary

SwiftUI) Navigation dismiss하기 본문

Development/iOS 개발

SwiftUI) Navigation dismiss하기

Tunko 2022. 7. 21. 18:42

iOS 버전에 따라 구현 방법이 달라집니다.

iOS13, 14

@Environment(\.presentationMode) var presentationMode

라는 환경변수를 통해서

presentationMode.wrappedValue.dismiss()

를 사용해야 했습니다.

iOS15

@Environment(\.dismiss) private var dismiss

해당 환경변수를 선언후

dismiss()

형태로 사용할 수 있습니다.

실제로 사용할 때 다른 파일로 NavigationBackItem View를 생성하고

import SwiftUI

struct NavigationBackItem: View {

    @Environment(\.dismiss) private var dismiss
    var title : String = ""

    var body: some View {
        Button {
            print("돌아가기")
            dismiss()
        } label: {
            HStack {
                Image(systemName: "lessthan")
                    .foregroundColor(.Liblack1)
                Text(title)
                    .foregroundColor(Color.Liblack1)
            }
        }
    }
}

뒤로가기 화면에서 아래와 같이 사용해줍니다.

...
}
.toolbar {
    ToolbarItem(placement: .navigationBarLeading) {
        NavigationBackItem(title: "title")
    }
}

끝~

반응형
Comments