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

时间:2015-10-05 16:56:41

标签: ios objective-c modal-dialog uitabbarcontroller dismiss

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

奇怪的问题是

案例1:如果我创建一个UINavigationController并将一个新的viewController作为其根,并提供此NavigationController。在这个新的导航堆栈中,我可以轻松地以模态方式呈现视图并将其解除而不会出现问题。

案例2:现在没有创建一个新的UINavigationController,我提出了一个视图,当我关闭一个视图时,下面的视图表现得非常奇怪。例如,它的呈现视图是UICollectionView,它只是滚动回第一个单元格,就像它正在做的那样#34;重新加载"动作和" scrollTo"第一个细胞。如果presentView是来自rootView的推送视图,它将只是popToRoot视图,这绝对不是意图。

在我实现UITabbarController之前,我没有遇到这个问题,所以我想,在呈现视图并解散UITabbarController中的视图时,我应该知道更多内容。

我GUESS,当在UITabbarController视图中解除视图时,它会排序" RESET"所有内容都是它当前标签的第一个视图。我真的不确定它是不是真的。

我知道这是一种概念,但我不能认为必须有一些我在这里缺少的批评。

2 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:-1)

您可以尝试将其转至第一个viewcontroller。

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

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