我有两个示例按钮,每个按钮都会分别弹出两个不同的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新手。如果有人告诉我缺失点,那将是非常值得注意的。 在此先感谢。
答案 0 :(得分:1)
你的一个按钮可能有多个目标/动作对连接到它,因此当你希望它只调用一个方法时它会调用这两个方法。检查XIB /故事板中的连接,并删除任何不应存在的连接(可能是复制或错误拖动的结果)。