MBProgressHUD& SDWebImage - HUD未显示

时间:2012-09-27 18:36:50

标签: objective-c xcode mbprogresshud sdwebimage

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

我正在编辑试图分配UIViewController的方法,该UIViewController会显示一个MBProgressHUD HUD来指示进度。

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

我尝试做类似

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

并没有奏效。

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

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

1 个答案:

答案 0 :(得分:4)

如果您想从任何课程中显示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中。