我有一个关于在屏幕上显示提醒的问题。问题是:我有一个20到30个不同屏幕(笔尖)的应用程序在每个笔尖我做一些检查,看看用户是否在textedit中插入了文本。并且一些警报消息与其他警报消息相同。就像在3个笔尖中一样,有一个文本字段供用户输入他的年龄,并显示一个警告,如果他将其留空。 我想要做的是创建一个方法来显示这些警报,所以我不需要在不同的笔尖上有相同的警报。而不是在每个笔尖中调用警报视图,我会调用该方法并传递什么样的警报视图来弹出 实施这种方法的最佳方法是什么? TIA。
答案 0 :(得分:1)
你可以像往常一样为init分配一个新的UIAlertView,但你必须记得传递委托。
这是我的方法:
- (UIAlertView *)getUIAlertViewWithDelegate:(id)delegate title:(NSString *)title cancelTitle:(NSString *)cancel {
return [[[UIAlertView alloc] initWithTitle:title delegate:delegate cancelButtonTitle:cancel otherButtonTitles:nil] autorelease];
}
答案 1 :(得分:0)
好吧,我设法做到了。感谢所有帮助。这是我的最终解决方案
我为各种nib使用的一些方法创建了一个common.m类。
COMMON.H
@interface MetodosGerais : NSObject <UIAlertViewDelegate>{...}
- (void)getUIAlertViewWithDelegate:(id)delegate title:(NSString *)title cancelTitle:(NSString *)cancel;
Common.m
- (void)getUIAlertViewWithDelegate:(id)delegate title:(NSString *)title cancelTitle:(NSString *)cancel {
if (title == @"Enter your Height"){
[[[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Atention!", @"Atenção!")
message:@"You Should enter Your Height."
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil] autorelease] show];
}
else if (title == @"Enter your Age"){
[[[[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Atention!", @"Atenção!")
message:@"You Should enter your Age."
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil] autorelease] show];
}
...
在我的课程中,我想使用它,我做了
Common *myAlert = (Common *)[[UIApplication sharedApplication] delegate];
if ([idade.text length] == 0) {
[myAlert getUIAlertViewWithDelegate:self title:@"Enter Your Age" cancelTitle:@"OK"];
}...