【问题标题】:Removing multiple ViewControllers iPhone tabbar app删除多个 ViewControllers iPhone 标签栏应用程序
【发布时间】:2010-12-20 00:12:19
【问题描述】:

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

应用程序:

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

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

干杯

【问题讨论】:

    标签: iphone uiviewcontroller tabbar


    【解决方案1】:

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

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

    【讨论】:

    • 好的,谢谢您的建议....您可以看到我如何设置我的应用程序的视图架构.....将其更改为基于 UINavigationController 的任务会很困难吗查看架构??我决定走我做的路线的原因是因为我不想让导航栏在顶部....
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多