0

在我的应用程序中,我想在 for 循环中显示 UIAlertView,并基于“是”、“否”的选择

我想执行后续步骤。由于 UIAlertView 不会暂停执行,因此我无法处理这种情况。拥有 counter global and all 将使我的代码更加复杂。所以有些我想暂停执行,直到用户选择警报按钮。

请让我知道任何解决方案。

谢谢。

4

2 回答 2

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
        }
    }
}
于 2012-07-17T09:29:58.463 回答
0

当您显示 AlertView 时打破您的循环,然后在用户选择时再次运行循环或进一步执行。顺便说一句,您实际上想实现什么?

于 2012-07-17T09:37:28.430 回答