我在它自己的委托中调用 UIAlertView 并且它失败了。代码很简单:
@interface ViewController () <UIAlertViewDelegate>
@property (nonatomic, strong) UIAlertView *alertView;
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.alertView = [[UIAlertView alloc] initWithTitle:@"Howdy"
message:@"Here's the alert"
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"OK", nil];
[self.alertView show]; // this shows the
}
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 1) {
[self.alertView show]; // this does not show the alert again!
}
}
@end
但是,当我删除:
[self.alertView show]
并将其替换为:
[self.alertView performSelector:@selector(show) withObject:nil afterDelay:0.01]
有用。
这似乎表明,UIAlertVIew
即使我在委托方法中,原件也没有完全解除alertView:didDismissWithButtonIndex:
。
虽然这是有效的,但它似乎并不正确。谁能告诉我我做错了什么?