我目前正在使用这个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按钮时上下滑动
这里是所有视图的图形表示以及它们如何在屏幕上显示。
答案 0 :(得分:3)
您需要处理myViewName的视图:
[myViewName.view removeFromSuperview];
myViewName.view = nil;