在我的应用程序中,我想在for循环中显示UIAlertView,并根据“是”,“否”的选择
我想执行后续步骤。由于UIAlertView不会暂停执行,因此我无法处理此方案。拥有全局计数器,所有这些都会使我的代码更加复杂。所以我想在用户选择警报按钮之前暂停执行。
请告诉我任何解决方案。
感谢。
答案 0 :(得分:0)
首先将<UIAlertViewDelegate>
添加到视图控制器的.h
文件中:
@interface ViewController : UIViewController <UIAlertViewDelegate> {
然后创建警报并在需要时显示:
- (void)showConfirmAlert
{
UIAlertView *alert = [[UIAlertView alloc] init];
[alert setTitle:@"Confirm"];
[alert setMessage:@"Do you pick Yes or No?"];
[alert setDelegate:self]; // Notice we declare the ViewController as the delegate
[alert addButtonWithTitle:@"Yes"];
[alert addButtonWithTitle:@"No"];
[alert show];
[alert release];
}
实现委托方法以捕获按钮单击:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 0)
{
// Yes, do something
}
else if (buttonIndex == 1)
{
// No
}
}
瞧,你可以处理这两种情况。
编辑:如果您有多个提醒,请将它们全部声明为全局对象,以便您可以在alertView:clickedButtonAtIndex:
方法中区分每个提醒:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (alertView == alertOne) { //alertOne is a globally declared UIAlertView
if (buttonIndex == 0)
{
// Yes, do something
}
else if (buttonIndex == 1)
{
// No
}
} else if (alertView == alertTwo) { //alertTwo is a globally declared UIAlertView
if (buttonIndex == 0)
{
// Yes, do something
}
else if (buttonIndex == 1)
{
// No
}
}
}
答案 1 :(得分:0)
当您显示AlertView时,断开您的循环,然后在用户选择上再次运行循环或进一步执行。那么你想要实现什么目标呢?