Iphone 如何创建返回UIAlertView的方法?

Iphone 如何创建返回UIAlertView的方法?,iphone,objective-c,uialertview,Iphone,Objective C,Uialertview,我有一个关于在屏幕上显示警报的问题。问题是:我有一个应用程序,有20到30个不同的屏幕(笔尖),在每个笔尖上我做一些检查,看看用户是否在文本编辑中插入了文本。一些警报消息与其他消息相同。就像在3个笔尖中一样,有一个文本字段供用户输入他的年龄,如果用户将其留空,则会显示一个警报。 我想做的是创建一个方法来显示这些警报,这样我就不需要在不同的NIB上有相同的警报。我不会在每个nib中调用警报视图,而是调用该方法并传递要弹出的警报视图的类型。 实现此方法的最佳方法是什么? 蒂亚 您可以像往常一样分配初

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

蒂亚

您可以像往常一样分配初始化一个新的UIAlertView,但您必须记住传递委托

以下是我的方法:

- (UIAlertView *)getUIAlertViewWithDelegate:(id)delegate title:(NSString *)title cancelTitle:(NSString *)cancel {
    return [[[UIAlertView alloc] initWithTitle:title delegate:delegate cancelButtonTitle:cancel otherButtonTitles:nil] autorelease]; 

}

好吧,我设法做到了。多亏了这些帮助。这是我最后的解决办法

我为我在各种NIB中使用的一些方法创建了一个通用的.m类

普通的

@interface MetodosGerais : NSObject <UIAlertViewDelegate>{...}
- (void)getUIAlertViewWithDelegate:(id)delegate title:(NSString *)title cancelTitle:(NSString *)cancel;
在我想使用它的课堂上,我做到了

Common *myAlert = (Common *)[[UIApplication sharedApplication] delegate];
if ([idade.text length] == 0) {
    [myAlert getUIAlertViewWithDelegate:self title:@"Enter Your Age" cancelTitle:@"OK"];
}...

接近。您无法返回该值,因为您已经定义了返回void的方法。将void更改为UIAlertView*即可。或者,不要返回任何内容,并在自动释放后在链上添加“show”作为最终方法。对不起,这是我的错误。第一次,我想我应该在alloc init之后立即显示它,但后来我改变了:)好吧,原谅我的noobness。所以我的类是这样的@interface MetodosGerais:NSObject{…},方法是-(UIAlertView*)getUIAlertViewWithDelegate:(id)委托标题:(NSString*)标题取消标题:(NSString*)取消;在我看来,我称之为MetodosGerais*alerta;[alerta getUIAlertViewWithDelegate:???标题:@“三头肌”取消标题:@“确定”];我是OOB和objective-c的新手,理解学员有点困难。在这种情况下,代表是什么?委托人必须是自己。好的,为了便于理解,您知道OOP中的组合吗。委托是一种组合,但是:1/您必须为该对象(这里是UIAlertView)指定一个方法,以便在它完成其工作后调用u。2/代理通常应该是id。清楚吗?好的,我把它放在我的应用程序代理中就行了。但是,我可以在一个普通的.m类中这样做吗?好的,这仍然不起作用。程序stil在我的appDelegate中搜索方法,而不是common.m。我该怎么做才能让它在我的common.m上搜索?
Common *myAlert = (Common *)[[UIApplication sharedApplication] delegate];
if ([idade.text length] == 0) {
    [myAlert getUIAlertViewWithDelegate:self title:@"Enter Your Age" cancelTitle:@"OK"];
}...