我正在使用 SDWebImagePrefetcher
从我的 plist 中预取图像列表。
我正在编辑尝试分配 UIViewController 的方法,该方法会显示 MBProgressHUD
HUD 显示进度。
问题是 HUD 不会以任何方式显示。另外,SDWebImagePrefetcher 是 NSObject
我真的不知道在哪里初始化我的自定义 UIViewController 和 HUD,因为它没有任何 viewDidLoad
或viewWillAppear
方法。
我尝试做类似的事情
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/