0

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

应用程序:

  • 我有一个标签栏应用程序,每个标签都有自己的视图控制器和关联的视图。
  • 假设在选项卡 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)

有任何想法吗??对此问题的任何帮助将不胜感激

干杯

4

1 回答 1

0

我会为每个选项卡切换到基于 UINavigationController 的视图架构。然后你可以推送和弹出视图控制器,让系统尽其所能帮助你管理内存。此外,当您想跳转到“底部”时,您可以调用 popToRootViewController。

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

于 2009-11-24T19:07:58.643 回答