调用[self dismissModalViewControllerAnimated:YES]后,UIView没有出现;

时间:2011-10-19 17:36:15

标签: uiview ios5

所以这个让我难过......

我显示了一个导航控制器,按下按钮后会向其执行的父级发送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];
});

1 个答案:

答案 0 :(得分:0)

好的,所以我终于到底了。诀窍是在解雇模态视图控制器之前显示基础进度视图[progressBaseView setHidden:NO]

其余的想法是正确的 - 所有繁重的工作都发生在后台,同时更新主线程上的UI。