728x90
반응형
사용자에게 경고를 보여주거나 다시 한번 되물을때 Alert 기능을 사용합니다.
iOS에서도 간단하게 Alert 창을 구현할 수 있도록 지원을 하고 있는데요.
UIAlertController를 사용하여 만들어 보겠습니다.
프로젝트를 하나 만들어서 Storyboard 의 UIViewController에 버튼 2개를 만들었습니다.
Alert 과 ActionSheet 라는 버튼을 만들어 주었습니다.
Alert 버튼과 ActionSheet 버튼을 alertAction이라는 함수로 연결해주었습니다.
@IBAction func alertAction(_ sender: UIButton) { if sender.titleLabel?.text == "Alert" { showAlert(style: .alert) } else { showAlert(style: .actionSheet) } } | cs |
UIAlertController는 preferredStyle에 따라 Alert이 다르게 표현됩니다.
버튼 title이 Alert이면 style을 alert으로 정하고 아니면 actionSheet로 정해주었습니다.
style만 다르고 나머지 부분은 동일하기 때문에 showAlert이라는 함수를 만들어 주었습니다.
func showAlert(style: UIAlertController.Style) { let alert = UIAlertController(title: "알림", message: "내용", preferredStyle: style) let success = UIAlertAction(title: "확인", style: .default) { (action) in print("확인") } let cancel = UIAlertAction(title: "취소", style: .cancel, handler: nil) let destructive = UIAlertAction(title: "삭제", style: .destructive) alert.addAction(success) alert.addAction(cancel) alert.addAction(destructive) self.present(alert, animated: true, completion: nil) } | cs |
UIAlertController를 생성해주고 각 액션을 추가해주었고
각 기능을 하는 UIAlertAction 을 만들어 style을 다르게 설정하였습니다.
default : 일반적인 액션 버튼
cancel : actionSheet로 표현 되거나 alertAction이 많아지면 맨 아래에 위치하게 됩니다.
estructive : 글자를 Red 색으로 표현해준다.
Alert 버튼 클릭 - 액션이 3개 이상
Alert 버튼 클릭 - 액션이 2개 이하
ActionSheet 버튼 클릭
각 UIAlertAction의 handler 에서 기능을 처리 하면 됩니다.
이렇게 간단하게 UIAlertController에 대해서 알아보았습니다.
728x90
반응형
'프로그래밍 > iOS' 카테고리의 다른 글
[XCode] Cocoapod Build Error (0) | 2019.12.20 |
---|---|
[XCode 11] iOS 13 다크모드 해제 (0) | 2019.12.09 |
Swift 4 TableView Section (0) | 2019.03.04 |
Swift 4 UIRefreshControl (0) | 2019.03.04 |
Swift 4 TableViewCell SwipeAction (0) | 2019.02.21 |