簡體   English   中英

iOS:如果應用程序處於后台,則不會調用應用程序打開視圖生命周期方法

[英]iOS: App opens view life cycle methods are not called if app was in background

如果用戶從URL打開應用程序,我想打開特定的視圖控制器。 但是我面臨的問題是,如果用戶點擊主頁按鈕並通過URL打開應用程序,則應用程序將以其最后狀態打開,因為未調用視圖生命周期方法。 因此,我無法將視圖導航到任務詳細信息屏幕。 我想要的是,如果用戶通過url打開應用程序(如果它在后台),那么它應該打開特定的View控制器。 PS:我無法終止該應用程序。 我正在使用以下代碼(代碼在AppDelegate.m中編寫):

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {

    if([UserName length]!=0 && [Password length]!=0)
    {
        NSLog(@"url recieved: %@", url);
        NSLog(@"query string: %@", [url query]);
        NSLog(@"host: %@", [url host]);
        NSLog(@"url path: %@", [url path]);
        // NSDictionary *dict = [self parseQueryString:[url query]];
        // NSLog(@"query dict: %@", dict);

        NSArray* query = [[url query] componentsSeparatedByString: @"&"];
        NSString *taskId = [query objectAtIndex: 0];
        NSString *taskType = [query objectAtIndex: 1];
        NSArray* taskIdArray= [taskId componentsSeparatedByString: @"="];
        NSArray* taskTypeArray = [taskType componentsSeparatedByString: @"="];
        taskId = [taskIdArray objectAtIndex: 1];
        taskType = [taskTypeArray objectAtIndex: 1];
        NSLog(@"%@,%@",taskId,taskType);

        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:[NSBundle mainBundle]];
        ActivityDetailController *destViewController = (ActivityDetailController*)[storyboard instantiateViewControllerWithIdentifier:@"ActivityDetailView"];
        [self.navigationController pushViewController:destViewController animated:YES];  
    }
    return YES;
}

如果您想每次在前台進入ActivityDetailController時打開應用程序,則可以執行此操作,

  UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:[NSBundle mainBundle]];
    ActivityDetailController *destViewController = (ActivityDetailController*)[storyboard instantiateViewControllerWithIdentifier:@"ActivityDetailView"];
    [self.navigationController pushViewController:destViewController animated:YES];  
}

applicationWillEnterForegroundapplicationDidBecomeActive

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM