objective-c - 当应用程序进入后台时执行 Segue

标签 objective-c ios7 segue

我有一个 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/

相关文章:

ios - segue完成后如何执行一些代码?

ios - 导航到不在 UITabBar 上的 ViewController

ios - 如何找到 ARRAY 的索引位置,其中 NSPredicate 选取值。我使用 filteredArrayUsingPredicate 作为过滤器

ios - 如何设置AppStore支持的最高iOS版本

ios - 在哪里以编程方式设置 TableViewController 的 UIBarButtonItem 和单元格 "segue"

ios - 即使不满足标识符,Segue 也会执行

ios - 我想得到没有时间的今天日期

iphone - 如何处理 subview 的方向变化

ios7 - UIImagePickerController 图像类型

ios - 设置 "edgesForExtendedLayout = UIRectEdgeNone"不会阻止我的 subview 在 iOS 7 中向上移动