【发布时间】: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