ios - 在 AFNetworking 故障 block 中弹出 UINavigationController

标签 ios uinavigationcontroller afnetworking-2

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

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 不起作用,因为故障 block 在后台线程中运行。所以我使用方法 2。与方法 1 的响应相同。

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

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

p.s. self.navigationController不为空

最佳答案

我尝试了您的代码并且能够毫无问题地弹出 View Controller 。在 AFHTTPRequestOperation除非您在 AFHTTPRequestOperation 上显式设置队列,否则在主队列上调用 block 。 .

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];
}];

还要确保在导航转换完成之前没有插入和弹出 Controller ,这会产生意外的转换状态。

关于ios - 在 AFNetworking 故障 block 中弹出 UINavigationController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25300042/

相关文章:

ios - 无法从 swift ios 中的一段 tableview 中删除单元格

iphone - 在项目中实现 UItabbarController + UInavigationBar

swift - 如何更改导航栏的颜色?

ios - UITableViewCell 上的 UIProgressView

iOS 8.x + AFNetworking 内存增长

java - 将 JSON 数据从 iOS 发布到 java Web 服务

ios - 如何禁止 NSObject 中的基本 init 方法

ios - 滑动删除不适用于 TableVIewCell?

ios - 如何在 UITabBarController 和 UINavigationBarController 中呈现嵌入的 ViewController

iphone - xcode 中架构 armv7 的 undefined symbol