2014-01-16 6 views
2

AFHTTPOperation 및 OperationQueue를 통해 업데이트되는 경우 여러 파일을 다운로드하는 UIViewController가 있습니다. 어떤 이유로 사용자가 전원 버튼을 누르고이 파일을 다운로드하는 동안 앱이 백그라운드로 들어가면 이전 화면으로 돌아가거나 다시 풀고 싶습니다. 이 작업을 수행하기 전에 현재 다운로드 대기열의 현재 작업을 모두 취소하고 있습니다.앱이 백그라운드로 들어갈 때 단편 수행

다운로드 UIViewController에

- (void)didEnterBackground:(NSNotification *)notification { 
    if ([_downloadsQueue operationCount] > 0) { 
     [_downloadsQueue cancelAllOperations]; 
    } 

    [self performSegueWithIdentifier:@"unwindToLogin" sender:self]; 
} 

로그인의 UIViewController는

- (IBAction)unwindToLogin:(UIStoryboardSegue *)segue { 
    _passwordTextField.text = @""; 
    _userNameTextField.text = @""; 
    _files = [[NSMutableArray alloc] init]; 
} 

은 현재 응용 프로그램에 다시 들어갈 때 내가 로그인 화면을 표시하기 전에 다운로드 간단히 화면을 참조하십시오. 이 일을 막기 위해 어쨌든 가나 요?

+0

해당 세그먼트의 애니메이션을 해제하면 어떻게됩니까? –

+0

나는 unwind segue를 위해 애니메이션을 끄는 방법을 모르겠습니다. 위의 코드에 대한 코드를 게시 할 것입니다. –

답변

2

다른보기로 다시 돌아 오려면 탐색 컨트롤러로 직접 작업 할 수 있습니다. 펜촉이 내비게이션 컨트롤러에 내장 된 경우이 기능이 작동합니다. 이 루트가 아닌 경우

[self.navigationController popToRootViewControllerAnimated:NO]; 

하지만, 단지 탐색 스택에 다른보기는이 메서드를 호출 할 수 있습니다 : 로그인 뷰가 루트 뷰 컨트롤러 인 경우, 다음 명령을 사용할 수 있습니다

[self.navigationController popToViewController:loginViewController animated:NO]; 
+0

감사합니다. –

관련 문제