我有一个UIAlert
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"ok"
message:@"Canc?"
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:@"Annul", nil];
[alertView show];
[alertView release];
及其委托方法:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if(buttonIndex == 0)//OK button pressed
{
//do something
}
else if(buttonIndex == 1)//Annul button pressed.
{
//do something
}
并且一切正常但是如果我有另一个alertview示例“alertViewOne”,我希望这个alertViewOne有它的委托方法,它不应该使用第一个alertview的委托方法;怎么改变我的代码?
答案 0 :(得分:20)
只需为每个警报视图设置一个标签,并检查哪一个发送了messeg。
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
}
}
<强>更新强> 使用块有一个更好的解决方案。
您可以查看此项目,例如: UIAlertView-Blocks
据我所知,iOS8将带有块的本机警报。