2012-03-14 4 views
5

nasıl kaldırılırBen app sorunu ben onu görevden istemiyorum, yani background.But gittiğinde, penceresinde görünür herhangi uyarıları kaldırmak gerekir Benim uygulamada bir _UIAlertNormalizingOverlayWindow

[alert dismissWithClickedButtonIndex:0 animated:YES] 

, çünkü clickedButtonAtIndex Temsilcisini tetikler ve bir yöntem çağırır. Uygulama arka plana gittiğinde bundan kaçınmayacağım.

Aşağıdaki kodu

for (UIWindow *window in [UIApplication sharedApplication].windows) { 
     for (UIView *view in [window subviews]) { 
      if ([view isKindOfClass:[UIAlertView class]]) { 
       [view removeFromSuperview]; 
      } 

     } 

kullanılarakpencere ait subviews gelen alertView kaldırarak başarıyla yaptığını Ama sorun _UIAlertNormalizingOverlayWindow hala orada olduğunu ve bu bloklar user Interaction.Itüm penceremden de _UIAlertNormalizingOverlayWindow'u kaldırmam gerekiyor. Lütfen bunu yapmama yardım edin veya lütfen çözümü elde etmek için herhangi bir alternatif öneriniz.

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { 
    if(!_backgroundAlertFlag) 
    { 
     // handle alert processing normally here 
    } 
    // other wise ignore (just dismiss) 
} 

cevap

3

(sizin UIAlertViewDelegate yönteminde Sonra Ivar BOOL _backgroundAlertFlag

- (void)applicationDidEnterBackground:(UIApplication *)application { 
    _backgroundAlertFlag = YES; 

    // find your UIAlertView as you are doing already 

    [alert dismissWithClickedButtonIndex:0 animated:NO]; 
    _backgroundAlertFlag = NO; 
} 

varsayar UIWindows kaldırmak için tek yapmanız gereken farklı bir pencere anahtarı ve görünür yapmaktır.

+0

Teşekkürler alan.But Sorun için genel bir çözüm arıyorum. – Sree

+0

Bu uygulamanın genel bir çözüm olduğunu söyleyebilirim. Yer paylaşımlı pencere, App Store'da göndermek istediğinizde kullanamayacağınız özel bir API'dır. – rickster

0
Bildiğim kadarıyla söylemek mümkün oldum gibi bir yolu yoktur

: çok temiz çözüm olmasa da

İlgili konular