버튼이 없는 UIAlert의 틀 입니다.
하나의 버튼이 들어간 UIAlert 입니다.
취소버튼, 확인버튼 두개의 버튼이 들어간 일반적인 UIAlert의 형태입니다.
cancel 속성을 가진 버튼의 텍스트는 볼드(Bold) 처리됩니다.
3개 이상의 버튼이 들어가면 가로 배치의 버튼에서 세로 배치의 버튼으로 바뀌며,
cancel 속성을 가진 버튼은 가장 하단으로 내려갑니다.
UIAlert을 좀 더 개발자답게 사용하기 위해서 커스텀하게 만들어봅시다.
완성된 Custom Alert Method 입니다.
//1.
func customAlert(alertTitle: String?, alertMessage: String?, alertStyle: UIAlertController.Style, actions: UIAlertAction?...) {
//2.
let alertController = UIAlertController(title: alertTitle, message: alertMessage, preferredStyle: alertStyle)
//3.
let okButton = UIAlertAction(title: "Ok", style: .default)
//4.
for action in actions {
alertController.addAction(action ?? okButton)
}
//5.
self.present(alertController, animated: true)
}
//1. customAlert 메서드의 매개변수로 UIAlertController가 필요로 하는 파라미터를 그대로 적어줍니다
// (title, message, preferredStyle)
// actions 파라미터를 UIAlertAction으로 타입을 지정해줍니다
// UIAlertAction을 옵셔널(뒤에 물음표 -> ?) 타입으로 만들어 준 이유는 action에 아무것도 안들어가는 조건을 처리하기 위함입니다.
// UIAlertAction에 점점점(...)이 붙은 이유는 2개 이상의 action을 처리하기 위함입니다
// 만약 action에 단 1개의 액션이 들어온다면 UIAlertAction? 으로 구성해주면 됩니다.
//2. customAlert 메서드의 파라미터는 UIAlertController의 틀을 구성하게 됩니다.
//3. 아무런 action이 추가되지 않아서 크래쉬가 나는걸 방지해서 action을 옵셔널 바인딩 처리한 default버튼인 okButton 액션을 넣어줍니다.
// 1번에서 UIAlertAction?(옵셔널 UIAlertAction타입)을 처리해주기 위함입니다
//4. 추가된 액션 버튼을 alert에 넣어줍니다
//5. 완성된 얼럿을 띄워줍니다
커스텀 얼럿 메서드를 활용해 봅시다.
기능이 들어간 버튼을 만드는 방법입니다.
[iOS/Swift] 옵셔널?!(Optional) (0) | 2022.11.05 |
---|---|
[App Store] 날짜관련 앱에서 충돌이 난다면..? (1) | 2022.10.11 |
[iOS/Swift ] UITableViewCell에서의 타입 캐스팅 (0) | 2022.10.11 |
[iOS/Swift ] for ~ in VS forEach (0) | 2022.10.11 |
[Swift] 다른 파일의 메서드 호출하기 (0) | 2022.08.13 |