AlertView弹出两次单按钮

时间:2013-11-23 19:57:58

标签: ios iphone objective-c uialertview

我有两个示例按钮,每个按钮都会分别弹出两个不同的alertView。第一个效果很好,但击中第二个,不知道为什么两个alertView一个接一个地弹出。

以下是代码:

- (IBAction)AlertViewButtonTwo:(id)sender
{
UIAlertView *myAlertOne = [[UIAlertView alloc] initWithTitle:@"AlertView" message:@"AlertViewOne" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"GoToYahoo", @"GoToYoutube", @"GoToFacebook", nil];
myAlertOne.tag = 1;

[myAlertOne show];
}

- (IBAction)AlertViewButtonThree:(id)sender
{
UIAlertView *myAlertTwo = [[UIAlertView alloc] initWithTitle:@"AlertView" message:@"AlertViewTwo" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"GoToDailyStar", @"GoToProthomAlo", @"GoToNewAgeBD", nil];
myAlertTwo.tag = 2;

[myAlertTwo show];
}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (alertView.tag == 1)
{
    if (buttonIndex == 0)
    {
        // this is the cancel button
    }
    else if (buttonIndex == 1)
    {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.yahoo.com/"]];
    }
    else if (buttonIndex == 2)
    {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.youtube.com/"]];
    }
    else if (buttonIndex == 3)
    {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.facebook.com/"]];
    }
}
else if (alertView.tag == 2)
{
    if (buttonIndex == 0)
    {
        // this is the cancel button
    }
    else if (buttonIndex == 1)
    {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.thedailystar.net/"]];
    }
    else if (buttonIndex == 2)
    {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.prothom-alo.com/"]];
    }
    else if (buttonIndex == 3)
    {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.newagebd.com/"]];
    }
}
}

我是iOS新手。如果有人告诉我缺失点,那将是非常值得注意的。 在此先感谢。

1 个答案:

答案 0 :(得分:1)

你的一个按钮可能有多个目标/动作对连接到它,因此当你希望它只调用一个方法时它会调用这两个方法。检查XIB /故事板中的连接,并删除任何不应存在的连接(可能是复制或错误拖动的结果)。