此类使使用 UIAlertView
与 blocks 更加容易。
这允许你直接提供执行代码(作为 block),并在按钮点击时返回,而不是声明一个代理并实现相应的方法。
此外,这还具有一个巨大优势:在同一个对象中使用多个 UIAlertViews
时,可以显著简化代码,特别是在共享相同代理的情况下,编写简洁的代码是不容易的。
注意:您可能还对 OHActionSheet 感兴趣。
[OHAlertView showAlertWithTitle:@"Alert Demo"
message:@"You like this sample?"
cancelButton:@"No"
okButton:@"Yes"
buttonHandler:^(OHAlertView* alert, NSInteger buttonIndex)
{
NSLog(@"button tapped: %d",buttonIndex);
if (buttonIndex == alert.cancelButtonIndex) {
NSLog(@"No");
} else {
NSLog(@"Yes");
}
}];
您还可以使用此类生成一个将在给定时间后消失的 AlertView。 (您甚至可以在警报中添加动态文本,以显示实时倒计时)
[[[OHAlertView alloc] initWithTitle:@"Alert Demo"
message:@"This is a demo message"
cancelButton:nil
otherButtons:[NSArray arrayWithObject:@"OK"]
buttonHandler:^(OHAlertView* alert, NSInteger buttonIndex)
{
if (buttonIndex == -1)
{
self.status.text = @"Demo alert dismissed automatically after timeout!";
}
else
{
self.status.text = @"Demo alert dismissed by user!";
}
}] showWithTimeout:12 timeoutButtonIndex:-1 timeoutMessageFormat:@"(Alert dismissed in %lus)"];
此代码采用 MIT 许可证。