iOS에서 사용자에게 메시지를 보여주고, 선택을 유도할 때 UIAlertController를 자주 사용한다.
1. 사용 방법
하지만 매번 알림을 만들 때마다 같은 코드를 반복하게 되면 유지보수에 불편함이 생긴다. 아래 코드는 버튼 개수에 따라 1개, 2개, 3개짜리 경고창을 재사용 가능하게 구성한 함수들이다. 코드의 흐름과 각 함수의 역할을 구체적으로 설명해본다.
func showAlert(title: String, message: String, defaultTitle: String, confirmHandler: (() -> Void)? = nil)
- title: 경고창의 제목
- message: 경고창의 본문 내용
- defaultTitle: 확인 버튼에 표시될 텍스트
- confirmHandler: 확인 버튼을 눌렀을 때 실행될 클로저
이 함수는 확인 버튼 하나만 있는 기본적인 경고창을 표시한다. UIAlertController의 스타일은 .alert로 설정되어 있으며, 버튼을 누르면 confirmHandler가 호출된다. iOS 13 이상에서는 앱의 테마 설정(AppThemes.current)에 따라 밝기 모드를 강제로 지정한다.
func showAlert(title: String, message: String, defaultTitle: String, cancelTitle: String, confirmHandler: (() -> Void)? = nil, cancelHandler: (() -> Void)? = nil)
- 기본 구조는 동일하지만, 취소 버튼을 하나 더 추가할 수 있다.
- defaultTitle 버튼은 일반적으로 "확인", cancelTitle은 "취소"로 활용할 수 있다.
- 각각의 버튼은 독립된 핸들러를 가진다.
- UIAlertAction의 순서는 먼저 취소 버튼을 추가하고, 그 다음 확인 버튼을 추가한다. 이는 사용자 경험을 고려한 순서다.
func showAlert(title: String, message: String, defaultTitle: String, middleTitle: String, cancelTitle: String, confirmHandler: (() -> Void)? = nil, middleHandler: (() -> Void)? = nil, cancelHandler: (() -> Void)? = nil)
- 버튼이 세 개인 경우, 추가로 가운데 역할을 하는 버튼을 지정할 수 있다.
- 보통 중간 선택지를 제공하거나, ‘다시 보지 않기’ 같은 특수 기능용 버튼으로 활용된다.
- 버튼은 취소 → 중간 → 확인 순으로 추가된다.
유용한 포인트 정리
- 함수명은 모두 showAlert로 오버로딩 되어 있어 매개변수 수나 이름에 따라 자동으로 호출이 분기된다.
- 매번 새로운 UIAlertController를 만들지 않고 재사용 가능한 구조로 짜면 코드가 간결해진다.
- 사용자가 한눈에 보기 쉬운 버튼 순서를 고려해 addAction의 순서를 정한 것도 주목할 만하다.
'iOS, Swift 개발' 카테고리의 다른 글
Swift UserDefaults로 사용자 정보 관리 (0) | 2025.05.30 |
---|---|
3월 19일 앱 테크 퀴즈 정답(H 포인트 퀴즈, KB 스타 퀴즈, 하나은행 퀴즈, 신한 슈퍼 쏠 퀴즈) (0) | 2025.03.19 |
Swift에서 UITableViewCell을 구현하는 방법 (0) | 2025.03.07 |
앱 스토어 영수증 서명 인증서 SHA-256 이슈 (0) | 2025.01.06 |
구글 애드몹(AdMob) 광고로 수익내기(iOS앱 초기 세팅,예제) (1) | 2024.11.14 |