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

+ Recent posts