一个视图控制器中的两个警报视图 – buttonIndex响应

我正试图在单个View Controller中执行两个警报的微笑任务。 下面的代码工作正常,但我怎么会在视图控制器的其他地方做另一个实例。 我担心,如果我复制代码,我的buttonIndex不知道它响应哪个警报。 有任何想法吗? 谢谢!

-(void)alertChoice { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Title" message:@"Message" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Confirm", nil]; [alert show]; } - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { if (buttonIndex == 1) { //do something } } 

您可以使用UIAlertView上的tag属性来解密哪个警报是:

 -(void)alertChoice { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Title" message:@"Message" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Confirm", nil]; alert.tag = 0; [alert show]; } -(void)alertChoice1 { UIAlertView *alert1 = [[UIAlertView alloc] initWithTitle:@"Title" message:@"Message" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Confirm", nil]; alert1.tag = 1; [alert1 show]; } - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { if(alertView.tag == 0) { } } 

设置标签来提醒视图。

 alert.tag = 1; - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { if (buttonIndex == 1 && alertView.tag == 1) { //do something } } 

只需在每个警报视图中设置一个标记,然后检查哪一个发送了信息。

 alertView.tag=0; 

接着

 -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ if(alertView.tag==0){ if(buttonIndex == 0)//OK button pressed { //do something } else if(buttonIndex == 1)//Annul button pressed. { //do something } }else{ if(buttonIndex == 0)//OK button pressed { //do something } else if(buttonIndex == 1)//Annul button pressed. { //do something } } 

第1步:在您的视图controller.h文件中添加UIAlertViewDelegate

第2步:在您的视图controller.m文件中添加以下方法

 -(void)AlertMethodOne { UIAlertView *alertview=[[UIAlertView alloc]initWithTitle:@"AlertMethodOne" message:@"AlertMethodOne successfully Called" delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil]; alert.tag=101; [alertview show]; } -(void)AletrMethodTwo { UIAlertView *alertview=[[UIAlertView alloc]initWithTitle:@"AletrMethodTwo" message:@"AlertMethodTwo successfully Called" delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil]; alert.tag=102; [alertview show]; } 

在viewController中调用上述两个方法,如下所示:[self AlertMethodOne]; [self alertMethodTwo];

现在AlertViewbutton单击方法

 -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { if(alertView.tag==101) { if (buttonIndex == 0) { } } if(alertView.tag==102) { if (buttonIndex == 1) { } } }