2011-12-22 4 views
2

я погуглить эту проблему почти целый день сейчас, не получая ближе к решению, поэтому я хотел бы спросить вас, ребята .. :)UIAlertView в appdelegate.m не работает

Я m, работая над iOS-приложением, которое должно подключаться к mbed через WiFi и давать пользователю диалог, если он подключается, а если нет, а если нет, то дайте пользователю возможность повторить попытку. Моя проблема в том, что я реализовал метод подключения в appdelegate.m, и это отсюда я хотел бы показать предупреждения.

Оповещения он сам работает нормально, но у меня проблемы с обнаружением, когда кнопка нажата кнопка clickedButtonAtIndex не вызывается.

Я добавил UIAlertViewDelegate в appdelegate.h, например, так:

@interface AppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate, UIAlertViewDelegate> 

и установить делегат на себя, в alertview, например, так:

alert_NOT = [[UIAlertView alloc] initWithTitle:@"Not connected!" message:message_to_user delegate:self cancelButtonTitle:@"Try again" otherButtonTitles: nil]; 
    [alert_NOT show]; 
    [alert_NOT release] 

и clickedButtonAtIndex выглядит

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { 
NSLog(@"test"); 

}

Поэтому я хотел бы увидеть слово «тест» в журнале, когда кнопка нажата в предупреждении, но ничего не происходит.

Update: Пробовал его реализации в моем «FirstViewController.m» и там работает: S, но я очень хотел бы иметь его в appdelegate.m, если это возможно ..

ответ

1
@interface urAppDelegate : NSObject <UIApplicationDelegate,UIAlertViewDelegate> 

Если вы синтезируется alert_not затем использовать его как это с самим собой:

self.alert_NOT = [[UIAlertView alloc] initWithTitle:@"Not connected!" message:message_to_user delegate:self cancelButtonTitle:@"Try again" otherButtonTitles: nil]; 

[alert_NOT show]; 
[alert_NOT release]; 
+0

Хм, все еще ничего. Делегат настроен на себя в объявлении UIAlertView. –

+0

, что тоже не помогло. Мне удалось решить проблему самостоятельно, внедряя систему оповещений в контроллер моего вида, который работал с моим кодом, а затем запросил необходимые методы из моего приложения. очарование. Но большое спасибо за быстрый ответ. –

0

Вы должны использовать метод alertViewCancel для этого.

- (void)alertViewCancel:(UIAlertView *)alertView 
{ 
    NSLog(@"text"); 
} 
1

Я в настоящее время ищу в подобную реализацию и хотел бы поделиться идеей я имел с вами: возможно, используя NSNotification, что пожары, когда условия делегата будут выполнены, которые могут быть выслушанным для ваших ОК (s) и обрабатывается соответствующим образом, с видом предупреждения, в верхней части стека.

0

Определить, как показано ниже:

#define appDelegate ((AppDelegate*)[UIApplication sharedApplication].delegate) 

и оповещения, как:

UIAlertView *alert_NOT = [[UIAlertView alloc] initWithTitle:@"Not connected!" message:message_to_user delegate:appDelegate cancelButtonTitle:@"Try again" otherButtonTitles: nil]; 
[alert_NOT show]; 

Здесь устанавливается делегат, как это определено ключевое слово, то есть, AppDelegate.

Надеюсь, это поможет.

Смежные вопросы