Метод 1 Initialize флаг по умолчанию для предупреждения ... Если предупреждение не открыт набор isAlertViewShowing, как ни один метод
Bool isAlertViewShowing;
isAlertViewShowing = NO;
if (isAlertViewShowing == NO){
UIAlertView *alert =[[UIAlertView alloc]initWithTitle:@"Title" message:@"Message" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alert show];
// Now set isAlertViewShowing to YES
isAlertViewShowing = YES;
}
else
{
//Do something
}
2- Сделайте свою собственную функцию, чтобы проверить, является ли какой-либо UIAlertView
является показывать или не
- (BOOL)isAlertViewShowing{
for (UIWindow* window in [UIApplication sharedApplication].windows) {
NSArray* subviews = window.subviews;
if ([subviews count] > 0){
for (id view in subviews) {
if ([view isKindOfClass:[UIAlertView class]]) {
return YES;
}
}
}
}
return NO;
}
я рекомендовал используйте второй метод, если число UIAlertView
экземпляра может быть более одного.
Способ 2 также применим к UIAlertController, представленному в iOS8? – tounaobun
вы можете применить это в любом представлении. Измените 'UIAlertView' в строке номер 6 с каким видом вы хотите проверить. Убедитесь, что просмотр не отображается в контроллере. –