UIAlertView没有响应

时间:2015-10-30 07:01:54

标签: ios objective-c uibutton uialertview

我已设置委托: @interface FJLockFaceViewController ()<UIAlertViewDelegate>

和无效:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if (alertView.tag == 1)
    {
       if (buttonIndex == 1)
       {
          NSLog(@"YES");
          [self performSegueWithIdentifier:@"Login" sender:nil];
       }
    }
    else  if (alertView.tag == 2)
    {
        if (buttonIndex == 1)
        {
           NSLog(@"NO");
           [self performSegueWithIdentifier:@"Retry" sender:nil];
        }
    }
}

我的IBAction:

- (IBAction)Success:(UIButton *)sender
{
   UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"WELCOME!"
                                                   message:nil
                                                  delegate:self
                                         cancelButtonTitle:nil
                                         otherButtonTitles:@"Continue",nil];
   alert.tag = 1;
   [alert show];
}

- (IBAction)Fail:(UIButton *)sender
{
   UIAlertView *alert = [[UIAlertView alloc] initWithTitle:[NSString stringWithFormat:@"Failed to Recognize User"]
                                                   message:nil
                                                  delegate:self
                                         cancelButtonTitle:nil
                                         otherButtonTitles:@"Try Again",nil];
   alert.tag = 2;
   [alert show];
}

但是UIAlertView上的按钮没有响应,我做错了什么?

1 个答案:

答案 0 :(得分:1)

正如@Rushabh所说,UIAlertView中只有一个按钮。这就是你应该使用这个块的原因:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if (alertView.tag == 1) {
    if (buttonIndex == 0) {
        NSLog(@"YES");
        [self performSegueWithIdentifier:@"Login" sender:nil];
    }
}else  if (alertView.tag == 2) {
    if (buttonIndex == 0) {
        NSLog(@"NO");
        [self performSegueWithIdentifier:@"Retry" sender:nil];
    }
}
}

由于点击的按钮位于索引0而不是1,因此代码不会进入if条件的成功。而且我必须说你会知道,如果你使用了正确的断点来了解导致问题的原因。此外,由于UIAlertView中没有其他按钮,为什么还要烦恼检查按钮索引?只需检查标签即可。