Iphone 第二次查看后,没有隐藏
我有一个Iphone 第二次查看后,没有隐藏,iphone,mbprogresshud,Iphone,Mbprogresshud,我有一个MBProgressHUD,我想在切换选项卡时显示它。这在我的应用程序代理中。我这里的代码只在前三个选项卡上显示HUD -(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{ if ([viewController isKindOfClass:[UINavigationController c
MBProgressHUD
,我想在切换选项卡时显示它。这在我的应用程序代理中。我这里的代码只在前三个选项卡上显示HUD
-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{
if ([viewController isKindOfClass:[UINavigationController class]]) {
if (tabBarController.selectedIndex >= 3) {
UINavigationController *nav = (UINavigationController *) viewController;
[nav popToRootViewControllerAnimated:NO];
}
else {
UINavigationController *nav = (UINavigationController *) viewController;
HUD = [[MBProgressHUD alloc] initWithView:nav.view];
[nav.view addSubview:HUD];
HUD.labelText = @"Loading";
[HUD show:YES];
[nav popToRootViewControllerAnimated:NO];
}
}
}
我第一次查看页面时,它可以正常工作,但第二次返回时,它不会隐藏。我有我的[appDel.HUD hide:YES afterDelay:1.0]代码>在my视图中显示
如何在每次访问页面时隐藏HUD?我认为您可能正在将MBProgressHUD添加到UINavigationController中的不同视图中。然后你跳转到根目录,它试图删除一个不存在的MBProgressHUD。请尝试此(未测试的代码)
您必须检查MBProgressHUD视图是否已激活(如果已将其隐藏),或者只需执行以下操作:
if (!HUD) {
[self showLoadingHUD];
}
这是我的didSelectViewController
的else部分,正确吗?是。在else括号内。对不起,我不清楚。我想这就是它的发展方向,但它仍然不起作用。第一次可以,但第二次不行。对不起,我写的代码没有经过测试。我的意思是写nav.visibleViewController.view.subview(子视图是UIView的属性)HUD永远不会以这种方式显示。如果(HUD!=nil)
将永远不会进入该行,因为从未创建HUD。
if (!HUD) {
[self showLoadingHUD];
}