2012-03-14 42 views
5

Trong ứng dụng của tôi, tôi cần phải loại bỏ bất kỳ cảnh báo có thể nhìn thấy trong cửa sổ, khi ứng dụng đi vào background.But vấn đề là, tôi không muốn bỏ nó vớiLàm thế nào để loại bỏ một _UIAlertNormalizingOverlayWindow

[alert dismissWithClickedButtonIndex:0 animated:YES] 

bởi vì, nó sẽ kích hoạt các clickedButtonAtIndex Ủy quyền và sẽ gọi một phương pháp.Tôi không thể tránh điều này khi ứng dụng chuyển sang nền.

tôi đã làm nó thành công bằng cách loại bỏ các alertView từ subviews của cửa sổ sử dụng đoạn mã sau

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

     } 

Nhưng vấn đề là các _UIAlertNormalizingOverlayWindow vẫn còn đó và nó ngăn chặn sự tương tác người dùng.I cần phải xóa _UIAlertNormalizingOverlayWindow cũng khỏi cửa sổ của tôi. Vui lòng giúp tôi thực hiện việc này hoặc vui lòng đề xuất bất kỳ giải pháp thay thế nào để đạt được giải pháp.

Trả lời

3

Mặc dù nó không phải là một giải pháp rất sạch sẽ (giả định Ivar BOOL _backgroundAlertFlag

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

    // find your UIAlertView as you are doing already 

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

Sau đó, trong UIAlertViewDelegate phương pháp của bạn:

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

Cảm ơn alan.Nhưng tôi đang tìm một giải pháp chung cho vấn đề. – Sree

+0

Tôi muốn nói đây là giải pháp chung, vì cửa sổ lớp phủ là API riêng tư mà bạn không thể chạm vào nếu bạn muốn gửi trên App Store. – rickster

0

Theo như tôi đã có thể nói, không có cách nào Điều duy nhất bạn có thể làm là tạo một khóa cửa sổ khác và hiển thị.

Các vấn đề liên quan