2

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

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

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

我试图做类似的事情

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

并没有工作。

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

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

4

1 回答 1

4

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

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

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

而当你想隐藏MBProgressHUD只是使用

[hud hide:YES];

确保在设置应用程序的主窗口之前等待访问 keyWindow。这发生在启动时。如果它是以编程方式设置的,它在您的 AppDelegate 中,通过调用[window makeKeyAndVisible].

于 2012-09-30T00:28:33.407 回答