ios - 将新视图加载为模式并保持 gcd 异步代码 运行
ios - load new view as modal and keep gcd async code running
我正在使用 dispatch_async 到 运行 并行队列上的一段代码(特定方法)(一系列的连接检查,不是很重要)
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[self connectivityChecks];
});
在当前视图控制器上一切正常。
我想做的(如果可能的话)是模态加载一个新的视图控制器并保留那段代码 运行ning,因为它会根据检查它是 运行ning。使用它加载新视图。
CustomViewController *customLoader = [[CustomViewController alloc] init];
[customLoader setModalPresentationStyle:UIModalPresentationFullScreen];
[self presentViewController:customLoader animated:YES completion:nil];
有没有可能以这种方式工作?
如果没有,我怎样才能按照这些思路取得成果?
我将我的评论转化为更详细的答案:
- 在您的 CustomViewController 中,添加一个通知观察器,命名为:'com.myapp.connected'
- 在同一个CustomViewController中,不要忘记在observer消失的时候移除
- 创建一个新的自定义 class,说:'TaskManager'
在其中插入负责启动异步任务的方法
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[self connectivityChecks];
});
- 在 connectivityCheck 中,post 连接操作成功时名为 'com.myapp.connected' 的通知
- 根据您的调用 class,创建 'TaskManager'
的实例
- 根据您的调用 class,创建 CustomViewController 的实例。
我正在使用 dispatch_async 到 运行 并行队列上的一段代码(特定方法)(一系列的连接检查,不是很重要)
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[self connectivityChecks];
});
在当前视图控制器上一切正常。
我想做的(如果可能的话)是模态加载一个新的视图控制器并保留那段代码 运行ning,因为它会根据检查它是 运行ning。使用它加载新视图。
CustomViewController *customLoader = [[CustomViewController alloc] init];
[customLoader setModalPresentationStyle:UIModalPresentationFullScreen];
[self presentViewController:customLoader animated:YES completion:nil];
有没有可能以这种方式工作? 如果没有,我怎样才能按照这些思路取得成果?
我将我的评论转化为更详细的答案:
- 在您的 CustomViewController 中,添加一个通知观察器,命名为:'com.myapp.connected'
- 在同一个CustomViewController中,不要忘记在observer消失的时候移除
- 创建一个新的自定义 class,说:'TaskManager'
在其中插入负责启动异步任务的方法
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ [self connectivityChecks];
});
- 在 connectivityCheck 中,post 连接操作成功时名为 'com.myapp.connected' 的通知
- 根据您的调用 class,创建 'TaskManager' 的实例
- 根据您的调用 class,创建 CustomViewController 的实例。