Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 第二次查看后,没有隐藏_Iphone_Mbprogresshud - Fatal编程技术网

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];
}