UIAlertController는 사용자에게 메시지, 경고 또는 선택 옵션을 제공할 때 사용됩니다. 주로 다음과 같은 상황에서 구현됩니다:
- 사용자 동작에 대한 응답: 사용자가 버튼을 탭하거나 다른 동작을 할 때 발생하는 이벤트에 대한 응답으로 알림을 표시할 때 사용됩니다.
- 경고 메시지 표시: 앱이나 기기에서 중요한 정보를 사용자에게 알리고자 할 때 사용됩니다. 예를 들어, 잘못된 입력이나 작업을 시도할 때 사용자에게 경고 메시지를 표시할 수 있습니다.
- 사용자 선택 옵션 제공: 사용자에게 선택 옵션을 제공하여 특정 작업을 수행하도록 유도할 때 사용됩니다. 예를 들어, 사용자에게 예/아니오 또는 여러 선택 옵션을 제공할 수 있습니다.
UIAlertController를 사용하여 사용자와의 상호작용을 효과적으로 관리하고 사용자 경험을 향상시킬 수 있습니다.
아래는 Swift로 UIAlertController를 구현하는 간단한 예시입니다.

이 코드는 ViewController에서 버튼을 누르면 UIAlertController를 표시하는 간단한 예시입니다. UIAlertAction을 사용하여 "확인" 버튼을 추가하고, 이를 UIAlertController에 추가합니다. 마지막으로 present 메서드를 사용하여 UIAlertController를 화면에 표시합니다.
UIAlertController를 iPhone 및 iPad에 대해 동일하게 구현할 수 있습니다. UIAlertController는 iPad에서는 팝오버로 표시됩니다. 아래는 iPhone 및 iPad에서 동작하는 UIAlertController를 구현하는 예시 코드입니다.
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func showAlert(_ sender: Any) {
// UIAlertController 생성
let alertController = UIAlertController(title: "알림", message: "이것은 UIAlertController 예시입니다.", preferredStyle: .alert)
// UIAlertAction 생성 및 추가
let okAction = UIAlertAction(title: "확인", style: .default, handler: nil)
alertController.addAction(okAction)
// iPhone인 경우 모달로 표시
if UIDevice.current.userInterfaceIdiom == .phone {
present(alertController, animated: true, completion: nil)
} else {
// iPad인 경우 팝오버로 표시
if let popoverController = alertController.popoverPresentationController {
popoverController.sourceView = view
popoverController.sourceRect = CGRect(x: view.bounds.midX, y: view.bounds.midY, width: 0, height: 0)
popoverController.permittedArrowDirections = []
}
present(alertController, animated: true, completion: nil)
}
}
}
위 코드에서는 UIDevice 클래스를 사용하여 현재 디바이스가 iPhone인지 iPad인지를 확인합니다. iPhone인 경우에는 일반적으로 UIAlertController를 모달로 표시하고, iPad인 경우에는 팝오버로 표시합니다. iPad에서 UIAlertController를 팝오버로 표시하기 위해 popoverPresentationController 속성을 사용하여 팝오버의 소스뷰 및 소스사각형을 설정합니다.
* 별도로 IBAction 은?
IBAction은 Interface Builder와의 상호 작용을 정의하는 Objective-C나 Swift에서 사용되는 특별한 키워드입니다. 이것은 인터페이스 빌더에서 UI 요소(예: 버튼, 슬라이더 등)와 코드를 연결하는 데 사용됩니다.
Swift에서 IBAction은 사용자가 인터페이스 요소를 조작할 때 실행되는 메서드를 나타냅니다. 보통 버튼을 탭하거나 다른 제스처를 수행할 때 실행됩니다. IBAction 메서드는 @IBAction 어노테이션을 사용하여 표시되며, 해당 메서드는 인터페이스 빌더의 액션과 연결됩니다.
예를 들어, 다음은 버튼을 탭할 때 실행되는 IBAction 메서드의 예입니다.
@IBAction func buttonTapped(_ sender: UIButton) {
// 버튼이 탭될 때 실행될 코드
}
이 메서드는 사용자가 버튼을 탭할 때마다 호출됩니다. 이 메서드 내에서는 버튼 탭에 대한 응답으로 필요한 작업을 수행할 수 있습니다.
'iOS, Swift 개발' 카테고리의 다른 글
Release Monitoring 적용을 위한 Firebase 업데이트시 에러 'libarclite', 'libarclite_iphoneos.a' 문제 (0) | 2024.04.12 |
---|---|
App Store 심사 제출시 이슈 요청 사항 Missing API declaration (1) | 2024.04.05 |
아이폰과 아이패드 Alert 리스트 노출시 주의점(Object-C) (0) | 2024.03.28 |
구글 AdMob 과 Ad Manager 차이점, 개발 그리고 수익 결과 (1) | 2024.03.25 |
iOS 애플 디벨로퍼 프로그램 맴버쉽(Apple Developer Program Membership) 갱신 (0) | 2024.03.19 |