UpDownGame를 만들어 보면서 경고(알림창) 발생 시키는 함수가 필요하게 되었다. 게임이 지거나 끝났을 때, 알림창을 발생시키고자 하였는데 이에 해당하는 함수와 경고창에 대해 정리해볼겸 포스팅 함!
title
: 경고창의 title 파트이다.content
: 경고창의 content 파트이며, 일반적으로 경고의 내용이 포함된다.Action
: 위 경고창에서는 확인, 취소에 해당하는 영역이며, 경고창의 따른 행동이라고 생각하면 된다.func showAlert(message : String){
let alert = UIAlertController(title: nil, message: message, preferredStyle: .alert);
let okAction = UIAlertAction(title: "OK", style: .default) { (action) in
self.reset()
}
alert.addAction(okAction);
present(alert,animated: true,completion:nil);
}
UIAlertController()
를 통해 생성하고 있으며, title과 message는 상황에 맞게 넣으면 된다. preferedStyle
에는 크게 .alert
인자와 .actionSheet
인자를 전달할 수 있다.화면 중앙에 우리가 흔히 알 수 있는 경고창과 같이 나타난다.
화면 아래에서 올라오는 경고창으로, 경고의 의미라기보다는 선택창의 의미로도 쓸 수 있을만 하다.
UIAlertAction()
를 통해 생성하고 있으며 title은 상황에 맞게 넣으면 된다.sytle
에는 .default
와 .cancel
, destructive
의 인자를 전달할 수 있다.정리하자면 UIAlertController()
를 통해 경고창의 내용, 틀, 나타나는 위치를 잡고, UIAlertAction()
으로 액션 버튼을 만든다.
.addAction()
에 액션 버튼을 전달해 경고창을 완성한다.
UIAlertAction(title: "OK", style: .default, handler: ({func -> Void)}
가 원형이다. handler
에는 버튼을 클릭시에 어떤 행동을 할 지 전달할 수 있다. 이는 스위프트에서 제공하는 다른 표현으로 바꾼다면, UIAlertAction(title: "OK", style: .default) { // 원하는 행동}
으로 정의할 수도 있다.present()
는 경고창을 발생시키는 역할을 헌다. 첫번째 인자에 경고를 전달하고 animated
에는 true, false 를 전달할 수 있다. true의 경우에는 경고가 나타날때 애니메이션 효과가 있으며, false를 전달한 경우에는 애니메이션 효과가 없다.
completion:
에는 나타난 후 어떤 행동을 할 것인가를 정의할 수 있다. 아무 행동을 정의할 것이 없다면 nil
을 전달하면 된다.