Ios 解除模式显示视图使选项卡栏控制器(某种)重置

Ios 解除模式显示视图使选项卡栏控制器(某种)重置,ios,objective-c,modal-dialog,uitabbarcontroller,dismiss,Ios,Objective C,Modal Dialog,Uitabbarcontroller,Dismiss,我有一个应用程序,其中有标签栏控制器作为主控制器。每个选项卡都有一系列带有导航控制器的视图,我可以在堆栈中正常推送和弹出这些视图 奇怪的问题是 案例1:如果我创建一个UINavigationController,并将一个新的viewController作为其根,并呈现这个NavigationController。在这个新的导航堆栈中,我可以很容易地以模式显示视图,并毫无问题地将其关闭 案例2:现在没有创建新的UINavigationController,我呈现了一个视图,当我关闭一个视图时,下面

我有一个应用程序,其中有标签栏控制器作为主控制器。每个选项卡都有一系列带有导航控制器的视图,我可以在堆栈中正常推送和弹出这些视图

奇怪的问题是

案例1:如果我创建一个UINavigationController,并将一个新的viewController作为其根,并呈现这个NavigationController。在这个新的导航堆栈中,我可以很容易地以模式显示视图,并毫无问题地将其关闭

案例2:现在没有创建新的UINavigationController,我呈现了一个视图,当我关闭一个视图时,下面的视图行为异常。例如,它的呈现视图是UICollectionView,它只是滚动回第一个单元格,就像它执行“重新加载”操作和“滚动到”第一个单元格一样。如果presentingView是来自rootView的推式视图,那么它将只是PoptRoot视图,这绝对不是我们想要的

直到我实现了UITabbarController,我才发现这个问题,所以我想,当我在UITabbarController中呈现一个视图并关闭一个视图时,我应该知道更多的情况

我猜,当在UITabbarController视图中关闭一个视图时,它会将所有内容“重置”到当前选项卡的第一个视图。我真的不确定这是真的


我知道这有点概念化,但我忍不住想,这里一定有我遗漏的关键点

您可以尝试返回到第一个viewcontroller

-(iAction)按钮从VC2按下:(UIButton*)发送器
{
[自我解除视图控制器激活:是完成:无];

}//这将回到VC1我犯了一个愚蠢的错误,我将UITabbarController子类并在VIEWDID中定义导航控制器,而不是viewdidLoad,因此当我将窗口的根视图设置为tabbar控制器时,导航控制器设置不正确。这就是为什么所有的小事情都发生了。如果只是崩溃而不是这种奇怪的行为会更好。

谢谢你的回答,但这不是一个关于如何排除视图的问题。关闭视图很好,关闭模式显示视图后,显示视图控制器的行为异常。这太棒了!!我犯了同样愚蠢的错误,直到我读了你的帖子才意识到这一点。非常感谢!同样的错误。谢谢