iphone - 如何在不产生新线程的情况下在iPhone上显示MBProgressHUD?

标签 iphone ios multithreading user-interface mbprogresshud

我想在我的iPhone应用程序中显示一个MBProgressHUD而不产生新线程。

我有一组非常复杂的业务逻辑,有时(但并非总是)需要等待用户输入,并且在多个线程上运行最终会一次要求多次用户输入,从而导致疯狂的错误。因此,我宁愿避免在主线程上运行任何东西。但是,由于这个限制,由于主线程被阻塞,因此MBProgressHUD没有显示!通常,我将使用以下代码创建MBProgressHUD:

[HUD showWhileExecuting:@selector(myWorkerMethod) onTarget:self withObject:nil animated:YES];

但是我想使用以下代码而不阻塞主线程:
HUD = [[MBProgressHUD alloc] initWithView:self.view];
[self.view addSubview:HUD];
HUD.delegate = self;
HUD.minShowTime = 0.0;
HUD.labelText = @"some text";
[HUD show:YES];

有什么想法吗?

最佳答案

这个怎么样?

MBProgressHUD *HUD = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
HUD.labelText = @"Foo";
// code to execute synchronously
[MBProgressHUD hideHUDForView:self.view animated:YES];

关于iphone - 如何在不产生新线程的情况下在iPhone上显示MBProgressHUD?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7585389/

相关文章:

iphone - 为什么这个自定义 UIView 代码不显示 UILabel 的?

ios - 使用 AWS SDK v2 (iOS) 连接到 S3

python - 如何让子线程处理Python中的主进程被杀死或关键中断?

html - iPhone SE 无法正确显示响应表标题,但可以在 Android 上运行

从 "Accu-Chek Aviva Connect"BG 仪表收集数据的 iOS 应用程序。 (低功耗蓝牙)

java - 方法同步线程问题

c# - 同时多线程和异步

iphone - 如何在 Sqlite 中插入记录?

ios - scrollViewDidScroll : on UITableViewRowAnimation?

iphone - 在 iPhone App 中生成暂停/不连续的蜂鸣声