我试图在应用程序中使用MBProgressHUD. HUD被添加到视图的时候我收到一个错误.
这是将进度条添加到视图的代码.
HUD = [[MBProgressHUD alloc] initWithView:self.navigationController.view]; [self.view.window addSubview:HUD]; // Set determinate mode HUD.mode = MBProgressHUDModeAnnularDeterminate; HUD.labelText = @"Loading"; // myProgresstask uses the HUD instance to update progress [HUD showWhileExecuting:@selector(processFieldEntries) onTarget:self withObject:nil animated:YES];
应用程序错误:
*** Assertion failure in -[MBProgressHUD initWithView:],/Users/.../MBProgressHUD/MBProgressHUD.m:190
也
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException',reason: 'View must not be nil.'
和
Crash: View must not be nil.
有谁知道Assertion失败是什么以及如何解决. MBProgressHUD.m文件包含在“构建阶段”选项卡中的“编译源”和文件中包含的标题中.正在将进度添加到处理现场验证的过程中.
解决方法
您好,这是HUD显示屏上的快速提示.
首先,不要在这里翻转,但请确保如果您正在初始化导航控制器的HUD,那么您有一个或任何其他的事情.请注意,您在视图中粘贴HUD的次数越多,HUD重叠式(通常是好东西)将被禁用和覆盖的交互越多.
所以例如,如果你在一个基本的视图控制器,或一个模态等,做这样的事情:
HUD = [[MBProgressHUD alloc] initWithView:self.view]; [self.view addSubview:HUD];
请注意,您将其添加到与初始化的相同视图中.
还要注意你可以在其他视图中填充它:
self.navigationcontroller.view,self.splitviewcontroller.view或我的最爱:self.splitviewcontroller.view.superview(覆盖和禁用视图的两边).
如果您按照适用于您应用程序的正确视图的初始化示例,您的问题将自动解决.
好好