2009-11-24 48 views
0

好吧,让这一天真的很头疼,一天中的大部分时间都浪费了!几乎没有进展!删除多个ViewControllers iPhone的tabbar应用程序

该应用:

  • 我有一个标签栏应用程序的每个标签都有自己的视图控制器和相关联的图。
  • 说在选项卡1上的一个按钮,用户点击进入一个不同的观点我已经实现了以下内容:[self.view addsubView:view 2]
  • 我一直以这种方式
  • 如果添加视图从该视图用户返回到上一个视图我摆脱它后面的按钮链接到[self.view removefromsuperview]

对!那一切正常......这就是头痛。

如果用户完成下列操作: - 导航到对标签1 视图2 - 切换到标签2 - 再次返回到标签1

我想删除所有子视图(从viewControllers加载),从而他们与标签1上的view1一起呈现。

明白吗?

我曾尝试以下:

for(UIViewController *subview in [self.view subviews]) { 
    if([subview isKindOfClass:[View2Controller class]]) { 
     [subview.view removeFromSuperview]; 
    } else { 
     // Do nothing 
    } 
} 

在试图删除视图2。 (这种方法被称为view1的viewWillAppear - 并且确实被调用但不删除view2)

任何想法?这个问题的任何帮助,将不胜感激

干杯

回答

0

我会切换到基于UINavigationController的视图的架构为每个标签。然后,您可以推送并弹出viewControllers,让系统尽全力帮助您管理内存。此外,你可以在你想跳到'底部'时调用popToRootViewController。

此外,请务必注意,UIViews和UIViewControllers是不同的类,不应互换使用。子视图是UIViews的一个数组,而不是UIViewControllers。

+0

好的感谢您的建议....你可以看到我是如何建立我的应用程序的视图架构.....将它改变为基于UINavigationController的视图体系结构是一项艰巨的任务?我决定采取我所做的路线的原因是因为我不想在顶部有导航栏.... – 2009-11-25 09:12:16

相关问题