我有一个UIViewController,如果通过AFHTTPOperation和OperationQueue更新它们,它会下载多个文件。如果由于某种原因用户按下电源按钮并且应用程序在下载这些文件时进入后台,我想要退回或放松到上一个屏幕。在此之前,我目前正在取消下载队列中的所有当前操作。
下载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 :(得分:2)
如果要回弹到另一个视图,可以直接使用导航控制器。如果您的笔尖嵌入在导航控制器中,这将起作用。如果您的登录视图是根视图控制器,则可以使用以下命令:
[self.navigationController popToRootViewControllerAnimated:NO];
如果它不是根,而只是导航堆栈上的另一个视图,那么您可以调用此方法:
[self.navigationController popToViewController:loginViewController animated:NO];