【问题标题】:Pop UINavigationController in AFNetworking failure block在 AFNetworking 故障块中弹出 UINavigationController
【发布时间】:2014-08-14 04:21:54
【问题描述】:

如何在 AFNetworking 2 故障块中弹出 UINavigationController?我的代码如下:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
NSDictionary *params = @{@"request": @"get_sth"};
[manager POST:API_URL parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
   // success block here, omitted
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    // how can I pop UINavigationController here?
    // method 1
    [self.navigationController popViewControllerAnimated:YES];
    // method 2
    [self.navigationController performperformSelectorOnMainThread:@selector(popViewControllerAnimated:) withObject:[NSNumber numberWithBool:YES] waitUntilDone:NO];
}];

方法 1 和方法 2 均未响应(无错误、无警告、无崩溃、无延迟)。我认为方法 1 不起作用,因为故障块在后台线程中运行。所以我使用方法2。与方法1相同的响应。

我的目标很简单:当网络操作失败时,弹回上一页。

在上面的案例中我错过了什么?

附言self.navigationController 不为空

【问题讨论】:

  • 你试过dispatch_async(dispatch_get_main_queue(), ^{ // do pop }); - 作为一个远射,理论上这应该和performperformSelectorOnMainThread:一样做

标签: ios uinavigationcontroller afnetworking-2


【解决方案1】:

我尝试了您的代码并且能够毫无问题地弹出视图控制器。在AFHTTPRequestOperation 中,除非您在AFHTTPRequestOperation 上显式设置队列,否则在主队列上调用块。

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
NSDictionary *params = @{@“key”: @“value”};
[manager POST:URL parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
   // success code
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
  // failure code
    [self.navigationController popViewControllerAnimated:YES];
}];

还要确保您没有在导航转换完成之前推动和弹出控制器,这会产生意外的转换状态。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-08
    • 1970-01-01
    • 1970-01-01
    • 2018-02-07
    • 1970-01-01
    相关资源
    最近更新 更多