如何卸载uiview

时间:2012-06-07 23:16:10

标签: iphone ios addsubview

我目前正在使用这个if if statment来检查是否加载了uiview,如果这个判断工作完美的话......

    if (!myviewName.isViewLoaded) {
         //not loaded so load my view

    }
    else (myviewName.isViewLoaded){
         //is loaded so remove my view (unload)

    }

然而,当我尝试删除视图时,我不认为我正确地执行它,因为在第一次加载视图后我永远不能输入该if语句的第一部分...

这是 else(myviewName.isViewLoaded){

内的代码
[myviewName removeFromParentViewController];
   [animatedActionView removeFromSuperview]; 

我使用 removeFromParentViewController 的原因是因为我已将myviewName添加为animatedActionView的子视图,如此

[animatedActionView addSubview:b1VC.view];
[navigationController.view insertSubview:animatedActionView belowSubview:tabbarView];

animatedActionView作为子视图添加到我的navigationcontroller中,我将它放在我的tabbarview后面,这也是我的navigationcontroller上的子视图..

希望这一切都有道理.. 只是重复我的问题,我如何删除一个视图,以便它可以正确访问 if(!myviewName.isViewLoaded){

anyhelp将不胜感激。

更新: 根据回复,我被要求解释我想要做的更详细的事情,我将在这里做。

所以,我原来的项目有一个NavController控制我项目第一部分所需的所有视图(查询数据库)我的项目的第二部分显示吨或数据。

因此,我在一个新项目中对我的最终观点进行原型设计,以解决我可能遇到的所有问题,并希望以一种不会被苹果拒绝的方式来实现。

所以当我到达navController的最终视图时,我正在其中加载另一个navController。 (这会让我被拒绝吗?)

这个(sub)navController我将其称为otherNav将控制最终视图,它将加载几个不同的detailViewController,其中有一个特殊的滑动过渡动画,用户可以在详细视图之间左右滑动。

我还添加了一个tabBar(在它自己的viewcontroller中)作为othernav的子视图,当用户在详细视图之间切换时,我计划根据视图更改tabBar图标,因此当用户从一个细节视图滑动到另外,之前的图标将淡出,新图标将淡入。

最后我有几个其他的viewcontrollers我称之为actionViews(这是我的问题所在),它们作为子视图加载/插入到otherNav上,但放在tabBar后面,当选择并取消选择tabbar按钮时上下滑动

这里是所有视图的图形表示以及它们如何在屏幕上显示。

enter image description here

1 个答案:

答案 0 :(得分:3)

您需要处理myViewName的视图:

[myViewName.view removeFromSuperview];
myViewName.view = nil;