如何创建一个返回UIAlertViews的方法?

时间:2010-07-28 14:03:52

标签: iphone objective-c uialertview

我有一个关于在屏幕上显示提醒的问题。问题是:我有一个20到30个不同屏幕(笔尖)的应用程序在每个笔尖我做一些检查,看看用户是否在textedit中插入了文本。并且一些警报消息与其他警报消息相同。就像在3个笔尖中一样,有一个文本字段供用户输入他的年龄,并显示一个警告,如果他将其留空。 我想要做的是创建一个方法来显示这些警报,所以我不需要在不同的笔尖上有相同的警报。而不是在每个笔尖中调用警报视图,我会调用该方法并传递什么样的警报视图来弹出 实施这种方法的最佳方法是什么? TIA。

2 个答案:

答案 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"];
}...