ios - 将新视图加载为模态并保持gcd异步代码运行

时间:2015-09-15 14:48:45

标签: ios objective-c gcdasyncsocket

我使用dispatch_async在并行队列上运行一段代码(特定方法)(一系列连接检查,不是很重要)

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 
        [self connectivityChecks];
});

在当前视图控制器上,一切正常。

我想做的(如果可能的话)是以模态方式加载一个新的视图控制器并保持该部分代码运行,因为它会根据它运行的检查在新视图控制器上触发一些事件。使用它来加载新视图。

CustomViewController *customLoader = [[CustomViewController alloc] init];
[customLoader setModalPresentationStyle:UIModalPresentationFullScreen];
[self presentViewController:customLoader animated:YES completion:nil];

是否可以以这种方式工作? 如果没有,我怎么能在这些方面取得成果?

1 个答案:

答案 0 :(得分:1)

我将评论转换为更详细的答案:

  1. 在您的CustomViewController中,添加一个名为的通知观察者,说:' com.myapp.connected'
  2. 在同一个CustomViewController中,不要忘记删除观察者
  3. 创建一个新的自定义类,例如:' TaskManager'
  4. 插入负责启动异步任务的方法

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 
    [self connectivityChecks];
    

    });

  5. 在connectivityCheck中,发布名为' com.myapp.connected'的通知。当连接操作成功时
  6. 在您的通话类中,创建一个' TaskManager'
  7. 的实例
  8. 从您的调用类中,创建一个CustomViewController实例。