* UIAlertController
- iOS 애플리케이션에서 경고, 알림 등의 팝업 창을 표시하는 UI 컴포넌트
- 사용자에게 미시지를 전달하거나 사용자의 선택을 받을 때 주로 사용
1. 경고(alert) 스타일
- 사용자에게 경고, 오류, 주의사항 등을 알리는 데 사용
- 주로 단순한 OK 버튼이 제공되며, 사용자가 알림을 확인하는 용도로 사용
- 중단에 표시됨
2. 액션시트(action sheet) 스타일
- 사용자에게 선택지를 제공하고 사용자의 선택을 받을 때 사용
- 주로 여러 버튼을 포함하고, 각 버튼은 다른 동작을 수행하도록 설정
- 선택 옵션을 제공하기 위해 하단에 표시됨
* UIAlertController 구성 요소
- 제목(title) : 팝업 창의 제목을 나타냄. 주로 경고(alert) 스타일에서 사용
- 메시지(message) : 팝업 창의 본문 메시지를 나타냄. 사용자에게 전달할 내용 포함
- 액션(action) : 사용자가 선택할 수 있는 동작을 나타냄. 주로 버튼 형태로 표시되며, 각 버튼에 특정한 액션 연결 가능
사용 방법
1. 스토리보드에 버튼 추가
- bgColorBlue 버튼은 alert 스타일 사용
- ActionSheet 버튼은 actionSheet 방식 사용
2. alert 스타일
// blue 버튼 action
@IBAction func blueButton(_ sender: Any) {
// alert 스타일 사용
let alert = UIAlertController(title: "배경화면 색 전환", message: "버튼 색으로 배경을 바꾸시겠습니까?", preferredStyle: .alert)
let okAction = UIAlertAction(title: "OK", style: .default){action in
self.view.backgroundColor = UIColor.blue
}
alert.addAction(okAction)
self.present(alert, animated: true, completion: nil)
}
- 'blueButton' 클릭 시 알림 창을 표시하고 "OK" 버튼을 누르면 뷰의 배경색이 파란색으로 변경됨
- 'preferredStyle' 를 .alert로 사용
- 'UIAlertAction' 을 사용하여 버튼 객체를 만들고 버튼의 액션 클로저에서 배경색 변경
- 'UIAlertController'의 인스턴스에 'UIAlertAction' 버튼을 추가
- 'present(_ : animated: completion:)' 메서드를 사용하여 UIAlertController 표시
3. actionSheet 스타일
// actionSheet 스타일
@IBAction func actionSheetButton(_ sender: UIButton) {
// actionSheet 스타일 사용
let alert = UIAlertController(title: "배경화면 색 전환", message: "버튼 색으로 배경을 바꾸시겠습니까?", preferredStyle: .actionSheet)
// 각각의 버튼 객체 생성 후 액션 클로저에 동작 구현
let green = UIAlertAction(title: "green", style: .default){ action in
self.view.backgroundColor = UIColor.green
}
let white = UIAlertAction(title: "white", style: .default){ action in
self.view.backgroundColor = UIColor.white
}
let red = UIAlertAction(title: "red", style: .default){ action in
self.view.backgroundColor = UIColor.red
}
// UIAlertController에 각 버튼 추가
alert.addAction(green)
alert.addAction(white)
alert.addAction(red)
// UIAlertController를 표시
self.present(alert, animated: true, completion: nil)
}
- 'actionSheetButton'을 클릭하면 액션 시트가 표시되고, 각각의 버튼을 누르면 뷰의 배경색이 해당 색으로 변경되는 동작 수행
- 'UIAlertController'의 인스턴스를 생성하여 'preferredStyle' 을 actionSheet로 사용
- 'UIAlertAction'을 사용하여 각각의 버튼 객체를 만들고 버튼의 액션 클로저에서 배경색 변경 동작 구현
- 'UIAlertController'에 각 버튼 추가
- 'present(_ : animated: completion:)' 메서드를 사용하여 UIAlertController 표시
'Swift' 카테고리의 다른 글
Swift - 소프트웨어 아키텍처 (MVP, VIPER) (0) | 2023.07.06 |
---|---|
Swift - 소프트웨어 아키텍처(MVC, MVVM) (0) | 2023.07.02 |
Swift - RESTful API (0) | 2023.06.30 |
Swift - ViewControll의 LifeCycle (0) | 2023.06.29 |
Swift - iOS 앱의 라이프 사이클 (App's Life Cycle) (0) | 2023.06.29 |