在我的应用程序中,我想在 for 循环中显示 UIAlertView,并基于“是”、“否”的选择
我想执行后续步骤。由于 UIAlertView 不会暂停执行,因此我无法处理这种情况。拥有 counter global and all 将使我的代码更加复杂。所以有些我想暂停执行,直到用户选择警报按钮。
请让我知道任何解决方案。
谢谢。
在我的应用程序中,我想在 for 循环中显示 UIAlertView,并基于“是”、“否”的选择
我想执行后续步骤。由于 UIAlertView 不会暂停执行,因此我无法处理这种情况。拥有 counter global and all 将使我的代码更加复杂。所以有些我想暂停执行,直到用户选择警报按钮。
请让我知道任何解决方案。
谢谢。
首先为您的视图控制器添加<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
}
}
}
当您显示 AlertView 时打破您的循环,然后在用户选择时再次运行循环或进一步执行。顺便说一句,您实际上想实现什么?