2011-07-07 42 views

回答

1

如果您的UIAlertView來自第三方應用程序(不是來自您的應用程序),那麼您可以實現下面的委託方法來暫停和恢復遊戲。

要暫停遊戲

- (void)applicationWillResignActive:(UIApplication *)application { 
} 

恢復遊戲

- (void)applicationDidBecomeActive:(UIApplication *)application { 
} 

例如,如果您收到電話或短信,你可以使用上面委託暫停/恢復遊戲。

+0

實際上,當我斷開連接到蘋果server.GameCenter將顯示UIAlertView.I當時想做的事情。 – Bonny

0

只是要這樣:

- (void)applicationWillResignActive:(UIApplication *)application { 
//pause 
} 
- (void)applicationDidBecomeActive:(UIApplication *)application { 
//resume 
} 
7

系統警報通常顯示在其自己UIWindow。安裝的處理程序UIWindowDidBecomeVisibleNotificationUIWindowDidBecomeHiddenNotification通知跟蹤時UIWindow變爲可見,並分別隱藏:

[[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(aWindowBecameVisible:) 
               name:UIWindowDidBecomeVisibleNotification 
              object:nil]; 
[[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(aWindowBecameHidden:) 
               name:UIWindowDidBecomeHiddenNotification 
              object:nil]; 

在處理程序,搶,從通知的object屬性更改狀態UIWindow

- (void)aWindowBecameVisible:(NSNotification *)notification 
{ 
    UIWindow *theWindow = [notification object]; 
    NSLog(@"Window just shown: %@", theWindow); 
} 

- (void)aWindowBecameHidden:(NSNotification *)notification 
{ 
    UIWindow *theWindow = [notification object]; 
    NSLog(@"Window just hidden: %@", theWindow); 
} 

最後,檢查theWindow是否包含UIAlertView類型的子視圖。

+0

它也很有用:) – Bonny