UIAlertView按钮事件问题

时间:2011-08-30 17:27:11

标签: iphone objective-c

好吧所以我这里有一个小问题,我在这里有这个。

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if (buttonIndex == 0)
    {
        //YES clicked ...do your action
        [self.parentViewController dismissModalViewControllerAnimated:YES];
    }
    else if (buttonIndex == 1)
    {
        //NO clicked
        return;
    }
}

这允许我捕获从UIAlertView按钮触发的事件,但我已经为它分配了一个值,并且在同一页面上我需要另一个值分配给该类,所以:

if(buttonIndex == 2){//Proceed}

我主要想要它,以便当我按下第二个警告按钮时,它将返回到它正在进行的过程,而不是继续事件(buttonIndex == 0)。

所以有谁知道我可以从哪里开始?

3 个答案:

答案 0 :(得分:1)

只需在2 .h的{​​{1}}文件中存储引用,然后进行检查。例如,在UIAlertView文件中:

UIAlertView * alertView1; UIAlertView * alertView2;

在您的.h文件中,使用.m方法设置UIAlertView,然后将viewDidLoad方法更改为:

alertView:clickedButtonAtIndex:

希望有帮助!

答案 1 :(得分:1)

您可以执行的其他操作是使用alertView标记,以防您的应用中有多个alertview。例如,你可以这样做:

    UIAlertView *alert1 = [[UIAlertView alloc] initWithTitle:@"Title" message:@"AThe message."  delegate:self cancelButtonTitle:@"button 1" otherButtonTitles: @"button 2", nil];
    alert1.tag = 0;
    [alert1 show];
    [alert1 release];

然后在您的委托方法中,只需输入以下if子句:

if (alertView == alertView1) 

在上面的代码之前。

答案 2 :(得分:0)

如果你没有想到这一点,你可以在程序中放置一个计数器来计算触发警报视图的次数,然后根据该值进行操作。