iOS UIAlertController代码流控制

iOS UIAlertController代码流控制,ios,uialertcontroller,Ios,Uialertcontroller,当首先调用此方法时,执行if块,然后执行UIAlertController,这样我可以得到一个未确定的结果,这样任何人都可以解决此问题,并使其按顺序工作 有人能告诉我为什么视图控制器不是最后触发的,而不是第一触发的吗?presentViewController同步完成一个操作-函数立即返回,这意味着_baba不会是yes,因此函数返回false。当用户稍后选择一个选项时,将执行该块。您需要从函数中返回false,然后根据需要直接清除块中的文本字段谢谢,伙计,效果很好 -(bool)textFie

当首先调用此方法时,执行if块,然后执行UIAlertController,这样我可以得到一个未确定的结果,这样任何人都可以解决此问题,并使其按顺序工作


有人能告诉我为什么视图控制器不是最后触发的,而不是第一触发的吗?

presentViewController同步完成一个操作-函数立即返回,这意味着_baba不会是yes,因此函数返回false。当用户稍后选择一个选项时,将执行该块。您需要从函数中返回false,然后根据需要直接清除块中的文本字段谢谢,伙计,效果很好
-(bool)textFieldShouldClear:(UITextField *)textField
{
    UIAlertController * blert = [UIAlertController alertControllerWithTitle:@"your alert" message:@"are you sure you want to clear" preferredStyle:UIAlertControllerStyleAlert];

    UIAlertAction * defautact = [UIAlertAction actionWithTitle:@"ok" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action){
        NSLog(@"tao on YES");
        // click= YES;
        _baba =@"yes";
    }];

    UIAlertAction * defautact1 = [UIAlertAction actionWithTitle:@"cancel" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action){
        NSLog(@"Press on YES");
        // click= NO;
        //field1.text=@"";
        _baba=@"no";
    }];

    [blert addAction:defautact];
    [blert addAction: defautact1];

    [self presentViewController:blert animated:YES completion:nil];

    if([_baba isEqualToString:@"yes"])
    {
        return true;
    }
    else
    {
        return false;
    }
}