UIAlertView в appdelegate.m не работает - PullRequest
2 голосов
/ 22 декабря 2011

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

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

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

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

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

и установил для себя делегата в окне просмотра предупреждений.Примерно так:

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");

}

Так что я бы хотел видеть слово "тест" в журнале, когдакнопка нажата в окне просмотра предупреждений, но ничего не происходит.

Обновление: попытался реализовать его в моем "FirstViewController.m", и там это работает: S, но я очень хотел бы иметь его в appdelegate.m, есливозможно ..

Ответы [ 4 ]

1 голос
/ 27 декабря 2012

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

1 голос
/ 22 декабря 2011
@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 голосов
/ 04 февраля 2016

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

#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.

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

0 голосов
/ 22 декабря 2011

Для этого следует использовать метод alertViewCancel.

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