標籤: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開發 對生命週期的處理