【问题标题】:Performing a Segue when app enters background当应用程序进入后台时执行 Segue
【发布时间】:2014-01-17 04:14:53
【问题描述】:

如果通过 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];
}

目前,在重新进入应用程序后,我会在看到登录屏幕之前短暂看到下载屏幕。有没有办法阻止这种情况发生?

【问题讨论】:

  • 如果你关闭那个segue的动画会发生这种情况吗?
  • 我不知道如何关闭动画来放松转场。我将在上面发布我的 segue 的代码。

标签: objective-c ios7 segue


【解决方案1】:

如果你想弹回另一个视图,你可以直接使用导航控制器。如果您的笔尖嵌入在导航控制器中,这将起作用。如果你的登录视图是根视图控制器,你可以使用以下命令:

[self.navigationController popToRootViewControllerAnimated:NO];

如果它不是根,而只是导航堆栈上的另一个视图,那么您可以调用此方法:

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

【讨论】:

    猜你喜欢
    • 2019-03-11
    • 1970-01-01
    • 2020-08-20
    • 1970-01-01
    • 2014-12-13
    • 1970-01-01
    • 2012-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多