ios - popViewController 在 iOS 中的 NSURLSessionDataTask block 中不起作用

标签 ios objective-c iphone popviewcontroller

我已经创建了请求,我想在收到成功消息作为响应时弹出 View 。这是我的代码:

NSURLSession *session = [NSURLSession sharedSession];
NSString *baseURLRequest = [NSString stringWithFormat:@"%@/email_addr=%@",mySession.baseURL,self.txtEmail.text];
NSURLSessionDataTask *dataTask = [session dataTaskWithURL:[NSURL URLWithString:baseURLRequest] completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {

NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
    NSDictionary *dict = [json objectForKey:@"result"];
    NSString *msg = [dict objectForKey:@"msg"];

        if ([[dict objectForKey:@"status"] isEqualToString:@"success"])
        {
            dispatch_async(dispatch_get_main_queue(), ^{
                [self showMesssgeonAlert:@"Success"];
                [self hideProgress];

                [self.navigationController popViewControllerAnimated:YES];
            });
        }
        else
        {
        }
}];
[dataTask resume];

下面不工作,

[self.navigationController popViewControllerAnimated:YES];

有人知道为什么会这样吗? UINavigation controller 对于 viewControllers 也是一样的。请帮助我,谢谢。

最佳答案

@DevTest 你不能放 [self.navigationController popViewControllerAnimated:YES];在 dispath queue 里面,queue 不会弹出 viewcontroller 所以,你会设置 side dispatch queue...

关于ios - popViewController 在 iOS 中的 NSURLSessionDataTask block 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37290753/

相关文章:

ios - Windows下制作CSR证书(7)

ios - 如何以编程方式画线?

ios - 使用登录系统进行 Xcode UI 测试

iphone - 为什么这段代码在 iOS 5.1 中会崩溃,而在 iOS 6 中不会?

iphone - 从 objective-c 中包含 html 标签的字符串中提取内容

iphone - 事件指示器大大减慢了功能

ios - 适用于 iOS 和 Swift 3.0 的等效 Android 9 补丁(多个可拉伸(stretch)区域)

iphone - 检查 iPhone App 进入前台时在后台停留了多长时间

javascript - 使用 mp3 元数据或 HTML 在 iPhone 锁定屏幕上显示作品和轨道名称

objective-c - CoreBluetooth——在设备锁定时发现 BLE 外围设备