我正在使用SDWebImagePrefetcher
从我的plist中预取图像列表。
我正在编辑试图分配UIViewController的方法,该UIViewController会显示一个MBProgressHUD
HUD来指示进度。
问题是HUD不会以任何方式显示。另外,SDWebImagePrefetcher是NSObject
,我真的不知道在哪里初始化我的自定义UIViewController和HUD,因为它没有任何viewDidLoad
或viewWillAppear
方法。
我尝试做类似
的事情MyCustomViewController *cv = [[MyCustomViewController alloc]init];
HUD = [[MBProgressHUD alloc]initInView:cv.view];
并没有奏效。
我还尝试添加一个UIAlertView作为viewController的子视图,以查看它是否有效,但它根本不起作用!
任何关于在NSObject类中初始化UIViewController以便在分配的控制器上显示HUD的建议都会很棒。
答案 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中。