Как создать метод для возврата UIAlertViews? - PullRequest
3 голосов
/ 28 июля 2010

У меня есть вопрос об отображении предупреждения на экране.Дело в том, что у меня есть приложение с 20-30 различными экранами (перьями), и в каждом перо я делаю некоторые проверки, чтобы увидеть, вставил ли пользователь текст в textedit.И некоторые предупреждающие сообщения идентичны другим.Как и в 3-х перьях, есть текстовое поле, в котором пользователь может ввести свой возраст, и предупреждение, которое отображается, если он оставил поле пустым.Я хочу создать метод отображения этих предупреждений, чтобы мне не нужно было иметь одно и то же предупреждение на разных перьях.вместо того, чтобы вызывать представление предупреждений в каждом наконечнике, я бы вызывал метод и передавал, какой вид предупреждений должен появиться.
Каков наилучший способ реализации этого метода?

Ответы [ 2 ]

1 голос
/ 28 июля 2010

Вы можете просто выделить init новый UIAlertView, как обычно, но вы должны помнить, чтобы передать делегата.

Вот мой метод:

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

}
0 голосов
/ 29 июля 2010

Хорошо, мне удалось это сделать. Спасибо всем, что помогло. Это мое окончательное решение

Я создал класс cl.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"];
}...
...