所以这个让我难过......
我显示了一个导航控制器,按下按钮后会向其执行的父级发送NSNotification:
-(void)dismissModalWithUpload:(NSNotification *)notification
{
[self dismissModalViewControllerAnimated:YES];
[self performSelectorInBackground:@selector(executeUpload:) withObject:notification];
}
模态对话框解散,一切都很好。在随后的调用(executeUpload)中,我尝试取消隐藏包含进度指示器的视图以执行其他工作:
[self performSelectorOnMainThread:@selector(showProgressBar:) withObject:nil waitUntilDone:YES];
......麻烦的是,直到executeUpload中的任务完成才会出现进度。我一直试图通过各种方式来完成这项工作,但没有取得任何成功。那里有什么想法吗?
我还尝试使用以下方式对上传进行后台处理:
dispatch_queue_t myCustomQueue = dispatch_queue_create("com.freethinker.uploadQueue", NULL);
dispatch_async(myCustomQueue, ^{
[self executeUpload:notification];
});
答案 0 :(得分:0)
[progressBaseView setHidden:NO]
。
其余的想法是正确的 - 所有繁重的工作都发生在后台,同时更新主线程上的UI。