UIAlertController 사용법: 경고 및 알림 메시지 만들기

작성일 :

UIAlertController 사용법: 경고 및 알림 메시지 만들기

Swift에서 UIAlertController는 중요한 정보 전달 및 사용자의 선택을 유도하는 데 매우 유용한 UI 요소입니다. 이 글에서는 UIAlertController를 사용하는 방법을 설명하고, 다양한 예제를 통해 이를 어떻게 구현할 수 있는지 보여드리겠습니다.

UIAlertController 기본 개념

UIAlertControllerUIViewController의 하위 클래스이며, 주로 사용자에게 경고 메시지를 표시하거나 사용자로부터 입력을 받을 때 사용됩니다. UIAlertController의 두 가지 주요 스타일은 다음과 같습니다:

  • Alert: 화면 중앙에 팝업 형태로 나타나며, 사용자의 주의를 끌기 위해 사용됩니다.
  • Action Sheet: 화면 하단에 슬라이드 형태로 나타나며, 사용자가 여러 옵션 중 하나를 선택하게 합니다.

UIAlertController 생성 및 사용

기본 Alert 생성

기본적인 경고 메시지를 생성하는 방법은 다음과 같습니다:

swift
let alert = UIAlertController(title: "경고", message: "이것은 경고 메시지입니다.", preferredStyle: .alert)

이제 이 경고 메시지에 사용자가 취할 수 있는 액션을 추가해보겠습니다. UIAlertAction을 사용하여 버튼을 추가할 수 있습니다.

swift
let alertAction = UIAlertAction(title: "확인", style: .default, handler: nil)
alert.addAction(alertAction)

이제 구성된 경고 메시지를 화면에 표시해봅시다. present 메서드를 사용하여 경고 메시지를 나타낼 수 있습니다.

swift
self.present(alert, animated: true, completion: nil)

전체 코드는 다음과 같습니다:

swift
let alert = UIAlertController(title: "경고", message: "이것은 경고 메시지입니다.", preferredStyle: .alert)
let alertAction = UIAlertAction(title: "확인", style: .default, handler: nil)
alert.addAction(alertAction)
self.present(alert, animated: true, completion: nil)

Action Sheet 생성

Action Sheet는 여러 옵션을 사용자에게 제공할 때 사용됩니다. 기본 형태는 다음과 같습니다:

swift
let actionSheet = UIAlertController(title: "선택", message: "옵션을 선택하세요.", preferredStyle: .actionSheet)

동일하게 UIAlertAction을 사용하여 사용자 액션을 추가할 수 있습니다:

swift
let option1 = UIAlertAction(title: "옵션 1", style: .default, handler: { action in
    print("옵션 1 선택됨")
})
let option2 = UIAlertAction(title: "옵션 2", style: .default, handler: { action in
    print("옵션 2 선택됨")
})
let cancelAction = UIAlertAction(title: "취소", style: .cancel, handler: nil)

actionSheet.addAction(option1)
actionSheet.addAction(option2)
actionSheet.addAction(cancelAction)

이제 Action Sheet를 화면에 나타냅시다:

swift
self.present(actionSheet, animated: true, completion: nil)

전체 코드는 다음과 같습니다:

swift
let actionSheet = UIAlertController(title: "선택", message: "옵션을 선택하세요.", preferredStyle: .actionSheet)
let option1 = UIAlertAction(title: "옵션 1", style: .default, handler: { action in
    print("옵션 1 선택됨")
})
let option2 = UIAlertAction(title: "옵션 2", style: .default, handler: { action in
    print("옵션 2 선택됨")
})
let cancelAction = UIAlertAction(title: "취소", style: .cancel, handler: nil)

actionSheet.addAction(option1)
actionSheet.addAction(option2)
actionSheet.addAction(cancelAction)

self.present(actionSheet, animated: true, completion: nil)

Text Field 추가하기

UIAlertController에 텍스트 필드를 추가하여 사용자 입력을 받을 수 있습니다. 이를 위해 addTextField 메서드를 사용합니다:

swift
let inputAlert = UIAlertController(title: "입력", message: "텍스트를 입력하세요.", preferredStyle: .alert)
inputAlert.addTextField { (textField) in
    textField.placeholder = "여기에 입력"
}

let confirmAction = UIAlertAction(title: "확인", style: .default, handler: { [weak inputAlert] (_) in
    let textField = inputAlert?.textFields![0]
    print("입력된 텍스트: \(textField?.text ?? "")")
})
inputAlert.addAction(confirmAction)

self.present(inputAlert, animated: true, completion: nil)

위 코드에서는 inputAlert.addTextField를 통해 텍스트 필드를 추가하고, UIAlertAction의 핸들러에서 해당 텍스트 필드의 값을 가져옵니다.

마무리

Swift에서 UIAlertController를 사용하는 것은 사용자 경험을 극대화하기 위해 필수적인 방법입니다. 경고 메시지, 액션 시트, 텍스트 필드 등의 다양한 스타일과 옵션을 통해 사용자와의 상호작용을 더욱 풍부하게 만들 수 있습니다. 이러한 기법들을 통해 사용자에게 보다 직관적이고 유익한 인터페이스를 제공할 수 있습니다.