UIWindow 在方法完成之前不显示
Posted
技术标签:
【中文标题】UIWindow 在方法完成之前不显示【英文标题】:UIWindow not displaying until method complete 【发布时间】:2016-10-20 18:11:10 【问题描述】:我正在尝试显示一个视图,因为该方法需要几秒钟才能完成。但是,直到整个方法完成,加载的 UIWindow 才真正成为关键和可见的。知道这里发生了什么吗?
// this line creates a uiwindow with view controller as root view controller, an activity indicator, and a label and makes the loading view key and visible
[XSELLoadingView presentLoadingViewWithTitle:@"Generating Report"]; // use loading view for long times
// these three lines process a lot of data and present the view on the main window
XSELCount *startCount = [[XSELCount counts] objectAtIndex:[self.startingPick selectedRowInComponent:0]];
XSELCount *endCount = [[XSELCount counts] objectAtIndex:[self.endingPick selectedRowInComponent:0
[self.navigationController pushViewController:[XSELReportView viewWithReportData:[XSELReportData compareStartCount:startCount toEndCount:endCount]] animated:false];
// this line makes the main view key and visable
[XSELLoadingView dismissLoadingView];
【问题讨论】:
只是为了澄清 XSELLoadingView 确实显示了一个带有视图的窗口,而不仅仅是当前窗口顶部的视图。 您需要在后台进行长处理。 【参考方案1】:在这个里面应用你的任务。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^
//Do background work
dispatch_async(dispatch_get_main_queue(), ^
//Update UI
);
);
【讨论】:
以上是关于UIWindow 在方法完成之前不显示的主要内容,如果未能解决你的问题,请参考以下文章
如果 UIWINdow 的子视图,UIButton 单击不起作用
作为 UIWindow 子视图添加的 UIView 不响应点击