具体的に言うと
例えば、AのUIAlertViewのOKボタン(ここは何ボタンでも良い)を押したらAの処理を、BのUIAlertViewのOKボタン(ここは何ボタンでも良い)を押したらBの処理をさせたい場合などです。例
// 異なる処理をさせたいUIAlertViewをあらかじめ用意
@interface ViewController ()
{
UIAlertView *_alertView1;
UIAlertView *_alertView2;
}
@end
// _alertView1表示
-(void)something1
{
_alertView1= [[UIAlertView alloc] initWithTitle:@"_alertView1"
message:@"_alertView1です。"
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:@"NO", nil];
[_alertView1 show];
[_alertView1 release];
}
// _alertView2表示
-(void)something2
{
_alertView2= [[UIAlertView alloc] initWithTitle:@"_alertView2"
message:@"_alertView2です。"
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:@"NO", nil];
[_alertView2 show];
[_alertView2 release];
}
// その他のUIAlertView表示
-(void)something3
{
UIAlertView *alrt = [[UIAlertView alloc] initWithTitle:@"alrt"
message:@"alrtです。"
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:@"NO", nil];
[alrt show];
[alrt release];
}
// UIAlertView デリゲートメソッド ----- (1)
// ボタンが押されたときに呼び出される
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
// _alertView1の場合の処理
if (alertView == _alertView1){
switch (buttonIndex) {
case 0:
NSLog(@"_alertView1 OKボタンが押されたとき");
break;
case 1:
NSLog(@"_alertView1 キャンセルボタンが押されたとき");
break;
default:
break;
}
}
// _alertView2の場合の処理
else if (alertView == _alertView2){
switch (buttonIndex) {
case 0:
NSLog(@"_alertView2 OKボタンが押されたとき");
break;
case 1:
NSLog(@"_alertView2 キャンセルボタンが押されたとき");
break;
default:
break;
}
}
// それら以外のUIAlertViewの場合の処理
else{
switch (buttonIndex) {
case 0:
NSLog(@"OKボタンが押されたとき");
break;
case 1:
NSLog(@"キャンセルボタンが押されたとき");
break;
default:
break;
}
}
}
ボタンが押されたかどうかは UIAlertViewクラスのalertView:clickedButtonAtIndex:メソッド を使います(1)。そのメソッドの中でUIAlertViewクラスのインスタンス変数として用意した変数をif文で振り分けています。
0 件のコメント:
コメントを投稿