我已将UIButton附加到按下它的方法:
- (IBAction)searchButtonPressed:(id)sender
{
NSLog(@"Search button pressed");
self.loadingLabel.hidden = false;
}
问题是,当我点击搜索按钮时,它会暂停几秒钟(该按钮执行按下效果),但是我想设置一个加载屏幕(作为UILabel),而不是这样用户知道发生了什么。我的searchButtonPressed方法不能使loadingLabel可见。按下时,UIButton会打开另一个视图控制器,其中包含一个解析文本的NSScanner。这是导致延迟的原因(在下一个视图控制器实际可见之前需要几秒钟)。在正在处理下一个视图控制器中的viewdidload时,如何在从一个视图控制器切换到另一个视图控制器时显示加载屏幕(如UILabel)?我认为视图控制器实际上不会显示,直到该视图控制器的viewdidload完成。谢谢。
答案 0 :(得分:0)
将您的NSScanner移动到viedDidload中的后台或将其移至- (void)viewDidAppear:(BOOL)animated
(在背景中)。
在上一个视图中按按钮时,在navigationController视图中显示加载视图,为此加载视图设置标记
当任务完成后,转到主线程重新加载视图并隐藏此加载视图(可以通过标记获取)