1

我目前正在使用这个 if 语句来检查是否加载了 uiview,这个 if 语句可以正常工作..

    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 作为子视图添加到我的导航控制器中,我将它放在我的 tabbarview 后面,这也是我的导航控制器上的子视图。

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

任何帮助,将不胜感激。

更新:根据回复,我被要求更详细地解释我要做什么,我将在这里做。

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

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

因此,当我到达导航控制器的最终视图时,我正在其中加载另一个导航控制器。(这会让我被拒绝吗?)

这个(子)navController 我将称为 otherNav 将控制最终视图,它将加载几个不同的 detailViewController 并带有特殊的滑动过渡动画,用户将能够在详细视图之间左右滑动。

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

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

这是所有视图的图形表示以及它们在屏幕上的位置。

在此处输入图像描述

4

1 回答 1

3

您需要注意 myViewName 的视图:

[myViewName.view removeFromSuperview];
myViewName.view = nil;
于 2012-06-07T23:25:00.420 回答