当以下文本字段在代码的第二部分
中收到条件时,我想要一个警报self.circuit.rcdAtIan = [ICUtils nonNilString:self.rcdAtIan.text];
self.circuit.rcdAt5an = [ICUtils nonNilString:self.rcdAt5an.text];
上面的代码工作正常,所以现在我需要解雇它。使用下面的方法是我的第一个想法,但是在每次键盘辞职时都会触发警报。我只希望警报显示一次。
- (void)textFieldDidEndEditing:(UITextField *)textField {
if ([_rcdAtIan.text intValue]> 200) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Warning" message:@"my message" delegate:nil cancelButtonTitle: @"Ok" otherButtonTitles: nil];
[alert show];
}
if ([_rcdAt5an.text intValue]> 40) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Warning" message:@"my message" delegate:nil cancelButtonTitle: @"Ok" otherButtonTitles: nil];
[alert show];
}
}
我想也许我需要一个NSUserDefaults
的布尔?但不知道如何实现它来检查是否已显示警报。通常情况下,如果我想要显示一次警报
if (![@"1" isEqualToString:[[NSUserDefaults standardUserDefaults] objectForKey:@"alert"]]){
[[NSUserDefaults standardUserDefaults] setValue:@"1" forKey:@"alert"];
[[NSUserDefaults standardUserDefaults] synchronize];
[alert show];
}
然而,在这种情况下,当重新加载页面时,我希望再次显示警报,并且在任何情况下我都不确定这是否是解决此问题的有效方法
答案 0 :(得分:1)
“你曾经”究竟是什么意思?每个应用运行一次,每个编辑步骤一次?
或者只是添加两个可以随时重置的BOOL标志,只需
即可- (void)textFieldDidEndEditing:(UITextField *)textField {
if ([_rcdAtIan.text intValue]> 200 && !alert1shown) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Warning" message:@"my message" delegate:nil cancelButtonTitle: @"Ok" otherButtonTitles: nil];
alert1shown = YES;
[alert show];
}
if ([_rcdAt5an.text intValue]> 40 && !alert2shown) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Warning" message:@"my message" delegate:nil cancelButtonTitle: @"Ok" otherButtonTitles: nil];
alert2shown = YES;
[alert show];
}
}
答案 1 :(得分:1)
不要使用NSUserDefaults,这是不合适的
在你的@interface ......
@property (assign) BOOL freshAlert1;
@property (assign) BOOL freshAlert2;
然后是这样的......(假设“页面重新加载”等同于你的viewController返回屏幕)
- (void)viewDidAppear
{
self.freshAlert1 = YES;
self.freshAlert2 = YES;
}
if (([_rcdAtIan.text intValue]> 200) && self.freshAlert1) {
self.freshAlert1 = NO;
...
}
if (([_rcdAt5an.text intValue]> 40) && self.freshAlert2) {
self.freshAlert2 = NO;
...
}