iOS отклоняет UIAlertView перед показом другого

У меня есть класс Utils, который показывает UIAlertView при срабатывании определенных уведомлений.Есть ли способ закрыть все открытые UIAlertViews перед показом нового?

В настоящее время я делаю это, когда приложение переходит в фоновый режим, используя

[self checkViews:application.windows];

в applicationDidEnterBackground

- (void)checkViews:(NSArray *)subviews {
    Class AVClass = [UIAlertView class];
    Class ASClass = [UIActionSheet class];
    for (UIView * subview in subviews){
        if ([subview isKindOfClass:AVClass]){
            [(UIAlertView *)subview dismissWithClickedButtonIndex:[(UIAlertView *)subview cancelButtonIndex] animated:NO];
        } else if ([subview isKindOfClass:ASClass]){
            [(UIActionSheet *)subview dismissWithClickedButtonIndex:[(UIActionSheet *)subview cancelButtonIndex] animated:NO];
        } else {
            [self checkViews:subview.subviews];
        }
    }
}

. Это упрощает работу с applicationDidEnterBackground, поскольку я могу использовать приложение. windows

Могу ли я использовать AppDelegate или что-нибудь подобное, чтобы получить все представления, просмотреть их и закрыть все UIAlertViews?

21
задан booboo-a-choo 22 March 2011 в 23:40
поделиться