[SwiftUI] Interactive Dismiss

RudinP·2025년 6월 30일
0

Study

목록 보기
306/325

모달 화면을 드래그해서 닫는 방식을 Interactive dismiss라고 한다.

입력을 받는 Modal Sheet에서 입력이 있을 때 dismiss되서는 안된다.

1. State var 추가

@State private var edited = false

2. sheet 모디파이어에 .interactiveDissmissDisabled 모디파이어 추가

.sheet(isPresented: $showComposer, onDismiss: nil) {
	ComposeScene(edited: $edited)
    	.interactiveDissmissDisabled(edited)
}
//modal로 표시되는 뷰
struct ComposeScene: View {
	@Binding var edited: Bool
    ...
    var body: some View {
    	...
        TextField("Title", text: $title)
        	.onChange(of: title) {
            	edited = title != "" || content != ""
            }
    }
}

dismiss시 경고창을 표시하고자 한다면 hosting을 공부해야 함

profile
iOS 개발자가 되기 위한 스터디룸...

0개의 댓글