我有一个 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];
}
目前,重新进入应用程序后,我会先看到下载屏幕,然后再看到登录屏幕。有什么办法可以阻止这种情况发生吗?
最佳答案
如果您想弹回到另一个 View ,您可以直接使用导航 Controller 。如果您的 Nib 嵌入导航 Controller 中,这将起作用。如果您的登录 View 是 Root View Controller ,则可以使用以下命令:
[self.navigationController popToRootViewControllerAnimated:NO];
如果它不是根,而只是导航堆栈上的另一个 View ,那么您可以调用此方法:
[self.navigationController popToViewController:loginViewController animated:NO];
关于objective-c - 当应用程序进入后台时执行 Segue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21170026/