bi_naの日記

2011-11-21

UIAlertViewのデリゲート

UIAlertViewはデリゲートのalertViewメソッドを呼ぶ

-(IBAction)tapBtn
{
    UIAlertView *alert = [[UIAlertView alloc]
                          initWithTitle:@"確認します。"
                          message:@"OKですか?"
                          delegate:self                                    // ここで自分にデリゲート
                          cancelButtonTitle:@"キャンセル"
                          otherButtonTitles:@"OK", nil];
    [alert show];
    [alert release];
}

-(void)
alertView:(UIAlertView *)alertView
clickedButtonAtIndex:(NSInteger)buttonIndex{
    if( buttonIndex == 1 ){
        myLabel.text = @"OK";
    }else{
        myLabel.text = @"キャンセル";
    }
}

alertViewメソッドの文法説明:

-(void)                                       // 戻り値はvoid
alertView : (UIAlertView *)alertView          // メソッド名はalertView, 第1引数の値は変数alertViewに入る,
clickedButtonAtIndex : (NSInteger)buttonIndex // 第2引数の値は変数buttonIndexに入る
{
  // メソッドの内容
}

プロトコル

プロトコルJavaでいうインタフェース的なもの。

delegateプロパティに指定されるクラスは、普通プロトコルを持つ(プログラマが自分で書く)。

今回の場合ではselfにあたるものにプロトコルを書くのだが、参考書籍が書いていないので

そのまま書かないこととした。

シンシン 2012/02/17 22:55 alertViewメソッドの文法説明、Objective-Cを始めたばかりだったので
すごく助かりました。最初clickedButtonAtIndexがメソッド名かと思ったんですが文法通りだったのですね!

bi_nabi_na 2012/02/17 23:36 お役にたててうれしいです。
慣れるまでが大変ですよね。
今でも混乱します。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/bi_na/20111121/1321865080