我和我的好友正在开发一个应用程序,我们是新手,但是书籍和风格都很长。
我们现在被困在这件事上了。我们有一堆texfields,我们通过此操作链接到它的清除按钮,但是如果您在其中一个警报视图按钮上单击“是”,我们希望调用该操作。
- (IBAction)clearText:(id)sender {
Spelare1Slag1.text = @"";
Spelare1Slag2.text = @"";
}
我们也有此警报视图:
alertDialog = [[UIAlertView alloc]
initWithTitle: @"Warning"
message: @"Do you want to delete?"
delegate: self
cancelButtonTitle: @"No"
otherButtonTitles: @"Yes", nil];
- (void)alertView: (UIAlertView *)alertView
clickedButtonAtIndex:(NSInteger)buttonIndex {
NSString *buttonTitle=[alertView buttonTitleAtIndex:buttonIndex];
if ([buttonTitle isEqualToString:@"No"]) {
}
else if ([buttonTitle isEqualToString:@"Yes"]){
Spelare1Slag1.text = @"";
}
}
所以这就是我们认为我们应该这样做的方式,但我们不知道在else if语句中放入什么。我们希望在警报视图中按“是”按钮时清除文本字段,而不是在按“否”时按
提前致谢!
答案 0 :(得分:2)
如果用户点击了AlertView
,您可以忽略NO
如果我理解了问题。
你可以像这样解除警报视图
[alertView dismissWithClickedButtonIndex:0 animated:YES];
但请务必查看NO
是否有索引0或1,如果您不确定那么只是这样做
[alertView dismissWithClickedButtonIndex:nil animated:YES];
答案 1 :(得分:2)
我假设clearText方法是您创建的自定义方法,用于删除两个字段中的文本吗?所以它不应该是IBAction,而应该是一个无效的方法:
- (void)clearText {
Spelare1Slag1.text = @"";
Spelare1Slag2.text = @"";
}
现在你需要在你的UIAlertView委托方法中做的就是调用clearText方法:
- (void)alertView: (UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
NSString *buttonTitle=[alertView buttonTitleAtIndex:buttonIndex];
if ([buttonTitle isEqualToString:@"Yes"]){
[self clearText];
}
}
希望这有帮助
答案 2 :(得分:1)
类型IBAction
的方法与任何其他方法一样,您可以直接在代码中调用它们。实际上,IBAction
只是评估void
的宏。通常,当需要在触发目标/操作事件的上下文之外调用时,您将传递nil
sender参数。
[self clearText:nil];
答案 3 :(得分:1)
为什么需要检查实际的按钮文字?检查按钮索引是最有效的方法。如果在alertView中有两个字段,只需检查索引是0还是1,然后就可以了。你做额外的工作检查实际的文本。
顺便说一下,如果你不按要求做任何具体的事情,只需检查YES按钮的索引。 (如果不需要,请不要检查两个索引。)