2014-01-16 145 views
2

如果通過AFHTTPOperation和OperationQueue進行更新,我有一個UIViewController可以下載多個文件。如果由於某種原因,用戶按下電源按鈕,並且應用程序在下載這些文件時進入後臺,我想要退回或放到前一個屏幕。在執行此操作之前,我正在取消下載隊列中的所有當前操作。當應用程序進入後臺時執行Segue

下載的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

如果您關閉該segue的動畫,會發生這種情況嗎? –

+0

我不知道如何關閉動畫放鬆繼續。我會在上面發佈我的segue的代碼。 –

回答

2

如果你想回彈到另一個視圖,你可以直接使用導航控制器。如果您的筆尖嵌入在導航控制器中,這將起作用。如果您的登錄View是根視圖控制器,可以使用下面的命令:

[self.navigationController popToRootViewControllerAnimated:NO]; 

如果沒有根,只是導航堆棧上的另一個觀點,那麼你可以調用這個方法:

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

謝謝,這工作。 –

相關問題