[SwiftUI] Alert

RudinP·2025년 6월 30일
0

Study

목록 보기
302/325

경고창 표시

1. State var 추가

isPresented를 관리하기 위한 변수를 추가한다.

struct Alert: View {
	@State private var showAlert = false

}

2. alert 모디파이어 추가

경고창 제목, isPresented, actions, message

  • alert 모디파이어는 위치에 상관없이 작동하긴 하지만, alert가 발생하는 트리거에 모디파이어를 추가하는 것이 좋다. 그 이외에는 최상위 컨테이너에 추가하는 것이 좋다.
struct Alert: View {
	@State private var showAlert = false
	
    var body: some View {
    	...
    }
    .alert("경고창", isPresented: $showAlert) {
    	//표시할 버튼 전달
        Button("확인") {
        
        }
        
        Button("취소") {
        	//버튼 역할 명시하지 않으면 그냥 옵션 중 하나임
        }
        
        Button(role: .cancel) {
        	//취소 버튼
        } label: {
        	Text("진짜취소")
        }
        
        Button(role: .destructive) {
        	//삭제와 같이 되돌리기 어려운 경우 버튼
        } label: {
        	Text("삭제")
        }
        
    } message: {
    	Text("경고창에 표시할 메시지")
    }
}

데이터를 받는 alert

struct Alert: View {
	@State private var showImageAlert = false
    
    @State private var imageData: ImageData = nil
    
    var body: some View {
    	...
        .alert("경고", isPresented: $showImageAlert, presenting: imageData) { data in
        	//data를 사용하여 액션을 추가 가능
            Button("버튼") {
            	message = "\(data.name)"
            }
            ...
        } message: {
        	Text("경고창에 표시할 메시지")
        }
    }
}
profile
iOS 개발자가 되기 위한 스터디룸...

0개의 댓글