답변:
네, UIAlertView
아마도 당신이 찾고있는 것입니다. 예를 들면 다음과 같습니다.
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No network connection"
message:@"You must be connected to the internet to use this app."
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
보다 멋진 작업을 원한다면의 사용자 정의 UI 표시 와 같이 메소드 에서 UIAlertView
서브 클래스 UIAlertView
를 작성하고 사용자 정의 UI 구성 요소를 넣을 수 있습니다 init
. 이 UIAlertView
나타난 후 버튼을 누르면 응답 하려면 delegate
위를 설정 하고 - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
방법을 구현할 수 있습니다 .
을보고 싶을 수도 있습니다 UIActionSheet
.
이 질문에 나오는 사람들은 팝업 상자에 따라 다른 것을 의미합니다. Temporary Views 설명서를 읽는 것이 좋습니다 . 내 대답은 주로 이것과 다른 관련 문서에 대한 요약입니다.
경고 는 제목과 선택적 메시지를 표시합니다. 사용자는 계속 진행하기 전에이를 확인 (단일 버튼 경고)하거나 간단한 선택 (단일 버튼 경고)을해야합니다. 로 경고를 생성합니다 UIAlertController
.
불필요한 경고 생성에 대한 설명서의 경고 및 조언을 인용 할 가치가 있습니다.
노트:
UIAlertView
더 이상 사용되지 않습니다. UIAlertController
지금 경고를 작성하는 데 사용해야 합니다.작업 시트 는 사용자에게 선택 목록을 제공합니다. 장치의 크기와 방향에 따라 화면 하단이나 팝 오버에 나타납니다. 경고와 마찬가지로 a UIAlertController
는 작업 시트를 만드는 데 사용됩니다. iOS 8 이전 UIActionSheet
에는 사용되었지만 이제 설명서에 다음과 같이 나와 있습니다.
중요 :
UIActionSheet
아이폰 OS 8. (주에서 더 이상 사용되지 않습니다UIActionSheetDelegate
생성 및 iOS 8 액션 시트를 관리하고 나중에 대신 사용합니다. 또한 사용되지 않습니다)UIAlertController
로모그래퍼preferredStyle
의UIAlertControllerStyleActionSheet
.
모달 뷰는 이 작업을 완료하는 데 필요한 모든 것을 갖추고 자체에 포함 된보기입니다. 전체 화면을 차지하거나 차지하지 않을 수 있습니다. 모달 뷰를 만들려면 모달 프레젠테이션 스타일UIPresentationController
중 하나와 함께를 사용하십시오 .
또한보십시오
팝 오버는 그것을 떨어져 도청 할 때 뭔가에있는 경우 사용자가 탭을 나타나고 사라 도면이다. 탭을 한 위치에서 제어 또는 위치를 표시하는 화살표가 있습니다. 내용은 View Controller에 넣을 수있는 모든 것이 될 수 있습니다. 으로 팝 오버를합니다 UIPopoverPresentationController
. (iOS 8 이전 UIPopoverController
에는 권장되는 방법이었습니다.)
과거에는 팝 오버가 iPad에서만 가능했지만 iOS 8부터는 iPhone에서도 볼 수 있습니다 ( 여기 , 여기 및 여기 참조 ).
또한보십시오
알림 은 앱이 포 그라운드에서 실행되지 않는 경우에도 사용자에게 무언가를 알리는 소리 / 진동, 알림 / 배너 또는 배지입니다.
또한보십시오
Android에서 Toast 는 화면에 짧은 시간 동안 표시되고 앱과의 사용자 상호 작용을 방해하지 않으면 서 자동으로 사라지는 짧은 메시지입니다.
안드로이드 배경에서 온 사람들은 토스트의 iOS 버전이 무엇인지 알고 싶어합니다. 이 질문들에 대한 몇 가지 예는 여기 , 여기 , 여기 , 여기 에서 찾을 수 있습니다 . 대답은 iOS의 토스트에 해당하지 않는다는 것입니다 . 제시된 다양한 해결 방법은 다음과 같습니다.
UIView
그러나 내 조언은 이미 iOS와 함께 제공되는 표준 UI 옵션을 고수하는 것입니다. 앱을 Android 버전과 똑같이 보이고 작동하도록 만들지 마십시오. iOS 앱처럼 보이고 느껴지도록 재 포장하는 방법을 생각해보십시오.
iOS 8이 출시 된 이후 UIAlertView
더 이상 사용되지 않습니다. UIAlertController 가 교체입니다.
다음은 Swift에서 어떻게 보이는지에 대한 샘플입니다.
let alert = UIAlertController(title: "Hello!", message: "Message", preferredStyle: UIAlertControllerStyle.alert)
let alertAction = UIAlertAction(title: "OK!", style: UIAlertActionStyle.default)
{
(UIAlertAction) -> Void in
}
alert.addAction(alertAction)
present(alert, animated: true)
{
() -> Void in
}
보시다시피 API를 사용하면 작업과 경고를 표시 할 때 콜백을 구현할 수 있습니다.
스위프트 4.2 업데이트
let alert = UIAlertController(title: "Hello!", message: "Message", preferredStyle: UIAlertController.Style.alert)
let alertAction = UIAlertAction(title: "OK!", style: UIAlertAction.Style.default)
{
(UIAlertAction) -> Void in
}
alert.addAction(alertAction)
present(alert, animated: true)
{
() -> Void in
}
iOS 8.0 용으로 업데이트
iOS 8.0부터는 다음과 같이 UIAlertController를 사용해야합니다.
-(void)alertMessage:(NSString*)message
{
UIAlertController* alert = [UIAlertController
alertControllerWithTitle:@"Alert"
message:message
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* defaultAction = [UIAlertAction
actionWithTitle:@"OK" style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action) {}];
[alert addAction:defaultAction];
[self presentViewController:alert animated:YES completion:nil];
}
내 예제에서 self는 UIViewController이며 팝업에 대한 "presentViewController"메소드를 구현합니다.
데이비드
스위프트 3 및 스위프트 4 :
UIAlertView는 더 이상 사용되지 않으므로 Swift 3에 Alert를 표시하는 좋은 방법이 있습니다
let alertController = UIAlertController(title: NSLocalizedString("No network connection",comment:""), message: NSLocalizedString("connected to the internet to use this app.",comment:""), preferredStyle: .alert)
let defaultAction = UIAlertAction(title: NSLocalizedString("Ok", comment: ""), style: .default, handler: { (pAlert) in
//Do whatever you want here
})
alertController.addAction(defaultAction)
self.present(alertController, animated: true, completion: nil)
더 이상 사용되지 않음 :
이것은 확인 된 응답에서 영감을 얻은 빠른 버전입니다.
AlertView 표시 :
let alert = UIAlertView(title: "No network connection",
message: "You must be connected to the internet to use this app.", delegate: nil, cancelButtonTitle: "Ok")
alert.delegate = self
alert.show()
뷰 컨트롤러에 델리게이트를 추가하십시오.
class AgendaViewController: UIViewController, UIAlertViewDelegate
사용자가 버튼을 클릭하면이 코드가 실행됩니다.
func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) {
}
이미 여러 종류의 팝업에 대한 개요 를 작성했지만 대부분의 사람들은 경고 만 필요합니다.
class ViewController: UIViewController {
@IBAction func showAlertButtonTapped(_ sender: UIButton) {
// create the alert
let alert = UIAlertController(title: "My Title", message: "This is my message.", preferredStyle: UIAlertController.Style.alert)
// add an action (button)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertAction.Style.default, handler: nil))
// show the alert
self.present(alert, animated: true, completion: nil)
}
}
내 완전한 답변은 여기에 있습니다 .