objective-c - MBProgressHUD 和 SDWebImage - HUD 未显示

标签 objective-c xcode mbprogresshud sdwebimage

我正在使用 SDWebImagePrefetcher 从我的 plist 中预取图像列表。

我正在编辑尝试分配 UIViewController 的方法,该方法会显示 MBProgressHUD HUD 显示进度。

问题是 HUD 不会以任何方式显示。另外,SDWebImagePrefetcher 是 NSObject我真的不知道在哪里初始化我的自定义 UIViewController 和 HUD,因为它没有任何 viewDidLoadviewWillAppear方法。

我尝试做类似的事情

MyCustomViewController *cv = [[MyCustomViewController alloc]init];
HUD = [[MBProgressHUD alloc]initInView:cv.view];

但没有成功。

我还尝试添加 UIAlertView 作为 viewController 的 subview ,以查看它是否有效,但它根本不起作用!

关于在 NSObject 类中的何处初始化 UIViewController 以便在分配的 Controller 上显示 HUD 的任何建议都很棒。

最佳答案

如果您想显示任何类的MBProgressHUD,这很简单。只需将其添加到应用程序的 keyWindow 中即可。这是您的应用程序的最顶层窗口,可以从任何地方轻松访问。

UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];

MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:keyWindow animated:YES];
hud.labelText = @"Loading";

当您想隐藏MBProgressHUD时,只需使用

[hud hide:YES];

请确保等到应用程序的主窗口设置完成后才访问 keyWindow。这发生在启动时。如果以编程方式设置,则通过调用 [window makeKeyAndVisible] 在您的 AppDelegate 中进行设置。

关于objective-c - MBProgressHUD 和 SDWebImage - HUD 未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12627966/

相关文章:

HTML 表格边框与单元格边框重叠

objective-c - 在我自己的自定义 UIView 的 Interface Builder 菜单中将我自己的事件添加到 "Sent Events"

objective-c - Objective-C 中的对象是否曾经在堆栈上创建过?

iphone - 将ViewController推到左边-简单吗?

ios - MBProgressView sleep 混合 View

ios - 带有多行的ios中的Toast消息

objective-c - 分析器关于引用计数错误减少的警告

c++ - ld : entry point (start) undefined. 通常在 crt1.o 中用于架构 x86_64

ios - 无法弄清楚如何管理 MBProgressHUD 和调度

iphone - 在 xcode/objective-c 项目中使用 C 文件