iPhone アプリで警告画面を表示させる方法です。

警告画面を表示する

UIAlertView *alert = [[UIAlertView alloc]
    initWithTitle:@"Alert Test"
    message:@"Message!!\nThis is Alert Test."
    delegate:self
    cancelButtonTitle:@"Cancel"
    otherButtonTitles:@"One", @"Two", nil];
[alert show];
[alert release];


message で改行をさせたい場合は “\n” を指定する。
キャンセルボタンを非表示にするには cancelButtonTitile:nil
otherButtonTitles は表示したいボタンの数だけ指定し、最後に nil を指定。

表示する際に以下のようにすると縦にボタンを並べられる。
※正式なメソッドではないらしく警告が出ます。

[alert setNumberOfRows:3];
[alert show];

警告画面で押されたボタンを取得

警告画面で押されたボタンは下記のメソッドで取得できます。押されたボタンは buttonIdex で判定します。キャンセルボタンもデザインが違うだけで、返ってくる値はキャンセルボタンがあってもなくても左側のボタンから 0,1,2 … となります。

- (void)alertView:(UIAlertView*)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
    // buttonIndex は左側のボタンから 0, 1, 2 ... となる
}

警告画面そのものがキャンセルされた場合

UIAlert に alertViewCancel というメソッドがあります。最初名前からキャンセルを押された場合に呼ばれるのかと思ったのですが、よく説明を読んでみると違いました。警告画面そのものがキャンセルされた場合です。どういう場合かというと警告画面を表示中にホームボタンなどを押された場合などです。

- (void)alertViewCancel:(UIAlertView*)alertView {
    // 警告画面そのものがキャンセルされた場合の処理
}

関連する投稿