2010-11-30 43 views

回答

3

通常的做法是对每个UIAlertViewtag属性使用唯一编号,然后检查代理回调中的标记。一个简单的方法就是使用一个枚举:

enum { 
    kServiceErrorAlert = 1, 
    kFailedToSaveAlert = 2 
}; 

... 

alertView.tag = kServiceErrorAlert; 
[alertView show]; 
2

如果你能负担得起的4.x版只能运行,你可以使用块,而忘记了代表和标签:

LambdaAlert *alert = [[LambdaAlert alloc] 
    initWithTitle:@"Test Alert" 
    message:@"See if the thing works."]; 
[alert addButtonWithTitle:@"Foo" block:^{ NSLog(@"Foo"); }]; 
[alert addButtonWithTitle:@"Bar" block:^{ NSLog(@"Bar"); }]; 
[alert addButtonWithTitle:@"Cancel" block:NULL]; 
[alert show]; 
[alert release]; 

LambdaAlert on GitHub

+0

在iPhone时间iOS 4.x已经出现了很长时间:)很好的答案 – 2010-11-30 08:28:31

相关问题