뷰를 종료시키는(스크린에서 없애는) 방법을 나열해보면
그리고
여러 방법이 있으니 뷰를 없애고 싶으면 상황에 맞게 이용하면 될거 같다.
여기서는 presentationMode를 간단하게 이용하려고 한다.
struct ContentView: View {
var body: some View {
NavigationView {
NavigationLink {
MyPresentationMode()
} label: {
Text("Navigation")
}
}
}
struct MyPresentationMode: View {
var body: some View {
Text("Navigation View")
}
}
기본적으로는 이런식으로 상단의 버튼을 통해서 돌아간다.
struct ContentView: View {
var body: some View {
NavigationView {
NavigationLink {
MyPresentationMode()
.navigationBarBackButtonHidden(true)
} label: {
Text("Navigation")
}
}
}
struct MyPresentationMode: View {
@Environment(\.presentationMode) var presentationMode
var body: some View {
Button {
self.presentationMode.wrappedValue.dismiss()
} label: {
Text("View Close")
}
}
}
navigation view의 상단 버튼을 없애서 기존처럼 돌아갈 수 없게 만들었지만 wrappedValue.dismiss()를 이용해 뷰를 종료시킬 수 있다.
버튼을 이용해서 특정 기능 후 뷰를 종료시키고 싶으면 Binding이 있을 경우 toggling을 하면 되겠지만 그렇지 않은 경우 이것을 이용하면 될거 같다.