オーダーメイドコース
icon
icon

XcodeでUIAlertView追加する方法【初心者向け】

iPhoneアプリを開発する際に、Xcodeで【UIAlertView(アラートビュー)】を追加する方法を初心者向けに解説した記事です。アプリ側で指定したタイミングで「アラート」を出すことが可能。ソースコードの記述が必要です。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

XcodeでiPhoneアプリを開発するときに、便利なUIパーツを追加する方法を紹介する記事です。初心者の方を対象としています。

今回は、UIAlertView(アラートビュー)を扱います。

 

なお本記事は、TechAcademyのiPhoneアプリ開発オンラインブートキャンプの内容をもとに紹介しています。

 

UIAlertViewとは

UIAlertView(アラートビュー)は、ユーザーのアクションをきっかけとせずに、アプリが必要なタイミングでアプリ内部の状態の変化などを「アラートメッセージ」としてユーザーに伝えるために使われます。

例えば、ユーザーの確認を求める場合や、現在位置の情報の取得を求める際などに使われます。

アラートビューはUIKitフレームワークに含まれますが、Storyboardで部品を配置するのではなく、ソースコードで記述する必要があります。

 

 

UIAlertViewの実装

実際にUIAlertViewを実装していきます。2つの例を扱います。

 

シンプルなアラートビュー

まずは1つ目の例は、シンプルなアラートビューです。

タイトルとメッセージ、そして一つのボタンから成り立っています。

iOS SimulatorScreenSnapz001

実装するには下記のようなコードを記述します。

UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@”GAME OVER” message:@”残念!残り機数が0になりました。” delegate:nil cancelButtonTitle:nil otherButtonTitles:@”OK”, nil];[alertView show];

「initWithTitle」でダイアログのタイトルを指定して、「message」で表示するメッセージを記述します。ユーザーがGAME OVERをキャンセルすることはできませんので「cancelButtonTitle」をnilにしています。そして「otherButtonTitles」に@”OK”を指定します。この際、nilでターミネートするのを忘れないでください。

また、otherButtonTitlesと複数形であることから、キャンセル以外のボタンを複数配置することが可能であるとわかります。ボタンが一つだけですので、処理の分岐はなくdelegateはnilに設定しています。[alert show]でアラートビューが表示されます。

 

ボタンが二つのアラートビュー

2つ目の例は、位置情報を利用するアプリを仮定して、ユーザーに位置情報の利用を認めるか否かを表示しています。この場合、OKならば位置情報の利用をしますが、「許可しない」の場合は利用しません。

iOS SimulatorScreenSnapz002

この実装は以下のようになります。

UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:nil message:@””SampleApp”は現在の位置情報を利用します。よろしいですか?” delegate:self cancelButtonTitle:@”許可しない” otherButtonTitles:@”OK”, nil];
[alertView show];

今回はTitleをなしにしてみましたが、message中の「”」は「”」をmessageに表示するためにエスケープしています。

また、cancelButtonTitleで「許可しない」を設定してユーザーに選択権を委ねています。

この場合は「OK」と「許可しない」で処理を分岐させる必要がありますので、delegateをselfにしています。delegateを利用する為にヘッダーファイルで

@interface ViewController : UIViewController

とUIAlertViewDelegateプロトコルを受け取る宣言をします。

 

さらに、delegateメソッドは以下のようになります。

– (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if( buttonIndex != alertView.cancelButtonIndex )
{
// キャンセル以外がタップされた時の処理
}
}

 

 

[PR] iPhoneアプリ開発コース

UIAlertViewの注意点

最後にUIAlertViewの注意点です。

下の図のようにアクションを選択させるためにUIAlertViewを使うことはNGとなります。Appleのガイドラインで、このような場合はUIActionSheetを使うように定められています。

iOS SimulatorScreenSnapz003

今回の記事は以上です。

他のパーツも追加したい場合は、UIActionSheetを追加する方法も合わせてご覧ください。

[お知らせ]TechAcademyでは初心者でも8週間でオリジナルアプリが作れるiPhoneアプリ開発オンラインブートキャンプを開催しています。