下面是方案。
我在控制器的viewDidLoad中创建了一个UIAlertView,在其中显示警报。
loginAlert = [[UIAlertView alloc] initWithTitle:@"Check"
message:@"Ok"
delegate:nil
cancelButtonTitle:@"Ok"
otherButtonTitles:nil, nil];
[loginAlert setAlertViewStyle:UIAlertViewStyleSecureTextInput];
我称它为[alert show],并显示它。
当用户按“确定”时,它将转到textEndEditing委托方法,并且从是否输入nil / worng值开始,我再次调用[alert show]。
- (void)textFieldDidEndEditing:(UITextField *)textField
{
if ([textField.text length] > 0)
{
}
else
{
NSLog(@"Checking");
[loginAlert show];
}
}
但是它不再显示。请告诉我该怎么办?
最佳答案
首先将警报视图委托更改为self。
loginAlert = [[UIAlertView alloc] initWithTitle:@"Check"
message:@"Ok"
delegate:self
cancelButtonTitle:@"Ok"
otherButtonTitles:nil, nil];
[loginAlert setAlertViewStyle:UIAlertViewStyleSecureTextInput];
[loginAlert show];
然后在警报视图委托方法中检查文本的长度,如果为空,则再次显示警报。
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex{
if (buttonIndex == 0) {
if ([[loginAlert textFieldAtIndex:0].text length] > 0)
{
}
else
{
NSLog(@"Checking");
[loginAlert show];
}
}
}
关于iphone - 如何使UIAlertView再次调用自身?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16583396/