繁体   English   中英

关闭以模态显示的视图使标签栏控制器(种类)重置

[英]Dismiss Modally presented view makes tab bar controller (kind of) reset

我有一个应用程序,其中有标签栏控制器作为主控制器。 每个选项卡都有一系列带有导航控制器的视图,我通常将这些视图推入并弹出到堆栈中。

奇怪的问题是

情况1:如果我创建一个UINavigationController并创建一个新的viewController作为其根,然后显示此NavigationController。 在这个新的导航堆栈中,我可以轻松地模态呈现视图并将其毫无问题地关闭。

情况2:现在,无需创建新的UINavigationController,我将呈现一个视图,而当我关闭视图时,下面的视图的行为将很奇怪。 例如,它的呈现视图是UICollectionView,它只是滚动回到第一个单元格,就像在执行“重新加载”操作和“ scrollTo”第一个单元格一样。 如果presentingView是从rootView推送的视图,则它将只是popToRoot视图,这绝对不是故意的。

在实现UITabbarController之前,我没有这个问题,所以我想,我应该知道在呈现视图并在UITabbarController中关闭视图时幕后的情况。

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

我知道这是一种概念上的想法,但是我不禁想到这里肯定缺少一些关键的东西。

我犯了一个愚蠢的错误,即我将UITabbarController子类化,并在viewDidAppear中而不是viewdidLoad中定义导航控制器,因此,当我将窗口的rootview设置为tabbar控制器时,导航控制器的设置不正确。 这就是为什么所有棘手的事情都发生了的原因。 如果只是崩溃而不是这种奇怪的行为,那就更好了。

您可以尝试此操作以返回到第一个ViewController。

 - (IBAction)buttonPressedFromVC2:(UIButton *)sender { [self dismissViewControllerAnimated:YES completion:nil]; } // This is going back to VC1. 

此方法将在第二个viewcontroller.m文件中。 是按钮点击方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM