在循环中删除所有带有其他实例视图的 viewController

Posted

技术标签:

【中文标题】在循环中删除所有带有其他实例视图的 viewController【英文标题】:Removing all viewController with other views of instance in a loop 【发布时间】:2012-10-03 05:17:05 【问题描述】:

我有一个显示webViews 的选项卡和一个显示viewController 元素的选项卡。 当我按下后退按钮时,我删除了所有 viewController+other viewstags 我这样创建它们:

 imageGame *appDelegate = (imageGame *)[UIApplication sharedApplication].delegate;
    UIActivityIndicatorView *bgImage = (UIActivityIndicatorView*) [appDelegate.viewController.view viewWithTag:7];

[bgImage removeFromSuperview];
 [appDelegate.viewController dismissModalViewControllerAnimated:YES];

并且它工作正常,但是如果我每次使用相同的标签创建新实例时一次又一次地触摸它,但是当我使用我的代码删除它们时,它并没有删除所有它们,可能只是其中一个...... .

我怎样才能用类似的逻辑删除它们?

【问题讨论】:

【参考方案1】:

这样做从 viewController 中删除所有 webView 添加以下代码:

 for (id subview in self.view.subviews) 
  if([subview isKindOfClass:[UIWebView class]]) //remove only buttons
  
     [subview removeFromSuperview];
    // or use below to remove specific tag UIWebView
    if(subview.tag == 999) 
    [subview removeFromSuperview];
    
  
 

【讨论】:

试过那个代码,只是用appDelegate.viewController.view替换了self.view.subviews,但是我在尝试if(subview.tag==999)时没有tag的属性

以上是关于在循环中删除所有带有其他实例视图的 viewController的主要内容,如果未能解决你的问题,请参考以下文章

设置标签栏的初始视图控制器

如何删除具有特定扩展名的所有文件

带有for循环的MVC视图仅返回最后一项

带有 isHidden 的视图总是在视图控制器启动时出现

循环遍历Android视图的所有子视图?

如何删除Google驱动器中具有特定扩展名的所有文件