这里是我的应用程序的设置:
导航-
-loginVC - 如果登录有效,推动Segue公司TO-
tab bar controller with 3 tabs:
-in the first tab, is a profile display which modal pushes to a profile editor(not
issue here)
-second tab is a searchVC that pushes to a tableVC that shows results. This is
where the tab bar disappears
-The third view is just a VC for updating the database this is linked to.
这是从字面上它是如何工作的故事板,并且我确信从searchVC到tableVC的SEGUE,是推动SEGUE。
我如何才能让标签栏控制器的消失在这第二个观点。
结构应
loginViewController -->modal segue--> tabBarController
|
|
|-->NavController->Item1ViewController
|
|-->NavController->Item2ViewController
|
|-->NavController->Item3ViewController
目前,关于你的第二个选项卡项目的“推”推动整个标签栏控制器出当你从第2项第一款的viewController推的方式。
如果你想在loginViewController(一致性)一个导航栏,将它嵌入到它自己的navigationController,但确保您不会从那里推: modal
赛格瑞或表现为[self presentViewController:tabBarViewController animated:yes completion:nil]
每个标签栏项目的导航控制器是可选的(取决于你是什么样的导航后,明确你想一个项目2) - 但你可能要一个一致性的每个项目。
更新
@rdelmar表明,使用登录屏幕作为根视图控制器的这种方法 - 在其顶部的应用程式的其余部分是“模态”呈现 - 是模态SEGUE的误用,并建议模态呈现登录屏幕上的第一标签项的方式。 我明白点,并给它一些更多的思考,但我同样发现替代有点不舒服...标签项目应在tabVC共享相同的权重 - 这样做的第一个项目提出一个模式登录控制器上的整个应用程序依赖不觉得自己是最好的程序流程。 如果一个应用程序需要被记录的用户,我看不出有什么毛病登录莫名其妙托换它。
我对此有更全面的描述版本的答案在这里:( 如何处理UINavigationControllers和UITabBarControllers的iOS 6.1 )。 这也有个好处,如果你从任何地方在你的应用程序提供了一个退出按钮,开卷SEGUE回到那个第一次登录屏幕-有效联合国呈递整个登录应用程序堆栈-将很好地工作。
一种不同的解决方案-其与@ rdelmar的风铃-将来自所述第一模态的viewController呈现登录屏幕,如果是,在一个标签栏控制器则没有 。 这可能会在我的上述回答的第一个屏幕已经工作后登录是navController嵌入的viewController。 然而开卷到注销不会一直那么干净。
最后,我怀疑这是可能只是一个风格问题,我们不应该太挂大约只要流逻辑依然强劲。
除非你有其他的导航控制器,你不提,你推的是从导航控制器这是你最初的控制器。 所以,从它按下,放tableVC在导航控制器的视图控制器的标签栏控制器的顶部。
我建议你让标签栏控制器窗口的根视图控制器。 有loginVC从控制器模态呈现在第一个选项卡(从它的viewDidAppear方法),所以它会先出现时,应用程序启动。 第二个选项卡应该有一个导航控制器作为其根控制器searchVC作为导航控制器的根视图控制器。