删除多个ViewControllers iPhone标签栏应用程序

时间:2009-11-24 18:43:01

标签: iphone uiviewcontroller tabbar

好的,所以真的很头疼这一天,大部分时间都被浪费了!进展甚微!

该应用:

  • 我有一个标签栏应用程序,每个标签都有自己的视图控制器和相关视图。
  • 在标签1上说,用户点击按钮转到其他视图我已实施以下内容:[self.view addsubView:view 2]
  • 我一直以这种方式添加视图
  • 如果用户从该视图返回到上一个视图,我会使用链接到[self.view removefromsuperview]
  • 的后退按钮删除它

右键!一切正常......这就是头痛。

如果用户完成以下操作:   - 导航到选项卡1上的view2   - 切换到标签2   - 再次返回标签1

我想删除所有子视图(从viewControllers加载),以便在选项卡1上显示view1。

得到它?

我尝试了以下内容:

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

试图删除view2。 (此方法在view1的viewWillAppear中调用 - 并且被调用但不会删除view2)

任何想法?任何有关此问题的帮助都将受到高度赞赏

干杯

1 个答案:

答案 0 :(得分:0)

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

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