2017-02-16 61 views
0

觸發「通知中心或控制中心」時才能檢查如我們所知,applicationDidBecomeActive將在我們打開和關閉Bottom Control Center/Top Noficication Center時調用。如何在applicationDidBecomeActive

但我想知道在應用程序DidBecomeActive當僅僅因爲這兩個事件,以處理一些功能,當用戶打開和關閉通知中心或控制中心。

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

    if(/*Code for DidBecomeActive Called Because of Contol Center*/ ---) 
    { 

    } 


if(/*Code for DidBecomeActive Called Because of Notification Center*/) 
    { 

    } 


} 

任何一個可以幫助我findout

代碼DidBecomeActive說是因爲通知中心的

代碼DidBecomeActive說是因爲控逆變中心

+0

在這裏你可能會發現你的[信息](http://stackoverflow.com/questions/7733730/how-to-determine-in-applicationdidbecomeactive-whether-it-is-the-initial-iphone)。 – voltae

回答

0

我不知道你可以實現你想要的 - 但你可以接近。當你把通知中心向下(或控制中心後,或進入應用程序切換),您將獲得:

applicationWillResignActive 

關閉面板並返回到應用程序將調用:

applicationDidBecomeActive 

現在充分backgrounding的應用程序,而不是調用序列:

applicationWillResignActive 
applicationDidEnterBackground 

並重新打開應用程序調用:

applicationWillEnterForeground 
applicationDidBecomeActive 

因此,所有你需要做的是使用一個標誌來跟蹤序列:

@property (nonatomic, readwrite) BOOL wasControlCenter; 

- (void)applicationWillResignActive:(UIApplication *)application { 
    _wasControlCenter = YES; 
} 

- (void)applicationDidEnterBackground:(UIApplication *)application { 
    _wasControlCenter = NO; 
} 

- (void)applicationWillEnterForeground:(UIApplication *)application { 
    _wasControlCenter = NO; 
} 

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

    if (_wasControlCenter) { 
     // Do your thing 
    }  
} 

不幸的是,我不認爲有辦法控制中心,通知中心,應用程序切換等進行區分

相關問題