Как наблюдать, когда отображается UIAlertView? - PullRequest
0 голосов
/ 08 апреля 2010

Можно ли в любом случае наблюдать, отображается ли UIAlertView, и вызывать функцию, когда она есть.

UIAlertView не создается и не отображается в том же классе, в котором я хочу вызывать функцию.

Трудно объяснить, но, проще говоря, мне нужно каким-то образом контролировать или наблюдать, становится ли вид как будто от первого респондента или что-то в этом роде, потому что я не думаю, что можно отслеживать, отображается ли UIAlertView: /

Ответы [ 2 ]

3 голосов
/ 08 апреля 2010

Похоже на работу для уведомлений.

Скажите, что класс A создает UIAlert, а класс B должен его соблюдать. Класс A определяет уведомление. Класс B регистрируется для этого уведомления. Когда класс A открывает предупреждение, он публикует уведомление, а класс B видит его автоматически.

См. NSNotification для деталей.

0 голосов
/ 08 апреля 2010

Вы можете сделать это следующим образом (если вы не хотите выполнять событие или генерировать уведомление и просто хотите проверить, отображается ли предупреждение или нет), объявив представление оповещения как переменную уровня класса и выпустив его, когда выalertview отклонено.

@interface ViewControllerA:UIViewController{
UIAlertView *theAlertView;

}

@property (nonatomic, retain) UIAlertView *theAlertView;
@end

@implementation ViewControllerA

@synthesize theAlertView;

- (void)showAlertView{
    // theAlertView = [[UIAlertView alloc] initWithTitle:@"Title" message:@"message" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:nil];
    // [theAlertview show];
    self.theAlertView = [[UIAlertView alloc] initWithTitle:@"Title" message:@"message" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:nil];
    [self.theAlertview show];
}

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex{
    // [theAlerView release];
    self.theAlertView=nil; // The synthesized accessor will handle releasing. 
}

Теперь вы можете проверить это:

if(viewControllerAClassObj.theAlertView){

}  

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

Спасибо,

Madhup

...