按下按钮会调用我的代码中的视图:
buttonlabel.text = @"Wait";
[self presentModalViewController:controller animated:YES];
buttonlabel.text = @"Done";
单击按钮后,我想立即将标签更改为“等待”。当前发生的情况是,视图的呈现需要 1-2 秒,并且标签仅在 1-2 秒过去后且视图更改之前更改为“等待”。
将动画从 YES 更改为 NO 无济于事。
按下按钮会调用我的代码中的视图:
buttonlabel.text = @"Wait";
[self presentModalViewController:controller animated:YES];
buttonlabel.text = @"Done";
单击按钮后,我想立即将标签更改为“等待”。当前发生的情况是,视图的呈现需要 1-2 秒,并且标签仅在 1-2 秒过去后且视图更改之前更改为“等待”。
将动画从 YES 更改为 NO 无济于事。
您需要将视图控制器的呈现排队,以便系统有机会实际将按钮的文本更改为“等待”。如果你想了解更多信息,谷歌runloop iOS
。
buttonlabel.text = @"Wait";
dispatch_async(dispatch_get_main_queue(), ^{
[self presentModalViewController: controller animated: YES];
});
但是你真的应该调查一下为什么展示 VC 需要这么多时间,而是找到一种方法来优化你的代码。寻找合并并发的方法,不要阻塞主线程。
buttonlabel.text = @"Wait";
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 0.5 * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
[self presentModalViewController:controller animated:YES];
buttonlabel.text = @"Done";
});