這可以通過使用布爾值來保存項目的返回,直到文件的構建完成。如果要顯示進度或在主視圖上顯示活動指示符,可以通過從主線程調用它來完成此操作。以下是此操作的代碼片段:
使用此功能在您的提供程序中設置活動視圖控制器以加載進度視圖。
self.parentViewController = parentVc;
這是帶阻塞和反饋視圖加載的項目功能。
self.wait = true;
[self prepareFile:^(){
[self performSelectorOnMainThread:@selector(dismissProgressView)
withObject:nil waitUntilDone:NO];
}];
[self performSelectorOnMainThread:@selector(loadProgressView)
withObject:nil waitUntilDone:NO];
while (self.wait) {
[self performSelectorOnMainThread:@selector(updateProgressView)
withObject:nil waitUntilDone:NO];
}
return self.completedUrl;
然後,您可以創建在主線程上調用的三個函數來顯示進度視圖,在等待文件完成時更新進度視圖。在dismissProgressView函數的實現中,確保在dismissViewController完成時將wait布爾值設置爲false。