App開發 對生命週期的處理

來源:互聯網
上載者:User

標籤:reg   skin   and   nbsp   後台   win   gpo   normal   har   

//擷取到當前所在的視圖

- (UIViewController *)presentingVC:(UIApplication *)application{

    UIWindow * window = application.keyWindow;

    if (window.windowLevel != UIWindowLevelNormal){

        NSArray *windows = [[UIApplication sharedApplication] windows];

        for(UIWindow * tmpWin in windows){

            if (tmpWin.windowLevel == UIWindowLevelNormal){

                window = tmpWin;

                break;

            }

        }

    }

    UIViewController *result = window.rootViewController;

    while (result.presentedViewController) {

        result = result.presentedViewController;

    }

    if ([result isKindOfClass:[MYTabBarViewController class]]) {

        result = [(MYTabBarViewController *)result selectedViewController];

    }

    if ([result isKindOfClass:[UINavigationController class]]) {

        result = [(UINavigationController *)result topViewController];

    }

    return result;

}

#p --當應用程式退出後台進行的操作 

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

    //進入後台執行的操作

    UIViewController *viewC = [self presentingVC:application];

    NSLog(@"viewC==%@",[viewC class]);

    if ([viewC class]== [LoginViewController class]) {

        [[NSUserDefaults standardUserDefaults] setObject:@"1" forKey:@"root"];

    }else{

        [[NSUserDefaults standardUserDefaults] setObject:@"0" forKey:@"root"];

        //[self goBackForViewController];

    }

}

#p --應用程式進入後台再進入前台進行的操作

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

    //進入前台執行的操作---原生頁面

    if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"root"] isEqualToString:@"0"]) {

       //進入原生頁面的不作處理

        [self goBackForViewController];

    }

    //如果停留在H5頁面,重新載入,防止session到期問題

    else{

        [self showViewControllers];

    }

 }

Documents:在iOS應用開發中使用應用周期進行相關的操作,可以很好處理應用生命週期之間的互動問題

App開發 對生命週期的處理

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.