Ios 移动到其他视图控制器时保留选项卡栏
我有一个这样的故事板 ->导航控制器->登录视图->选项卡控制器->VC1->VC2 我没有设法将标签栏从VC1“移动”到VC2 我尝试了以下方法:Ios 移动到其他视图控制器时保留选项卡栏,ios,swift,Ios,Swift,我有一个这样的故事板 ->导航控制器->登录视图->选项卡控制器->VC1->VC2 我没有设法将标签栏从VC1“移动”到VC2 我尝试了以下方法: 赛格(表演型) 实例化程序实例: // prepare for future display let storyboard = UIStoryboard(name: "Main", bundle: nil) let navigationVC = UIApplication.sharedApplication().keyWindow?.rootV
- 赛格(表演型)
- 实例化程序实例:
// prepare for future display let storyboard = UIStoryboard(name: "Main", bundle: nil) let navigationVC = UIApplication.sharedApplication().keyWindow?.rootViewController as! UINavigationController // prepare next view let vc = storyboard.instantiateViewControllerWithIdentifier("VC2id") self.tabBarController?.navigationController?.pushViewController(vc, animated: true)
self.hidesBottomBarWhenPushed = false
但这并没有改变任何事情
你还有别的想法吗
PS:我更新了上面的计划
编辑:阅读下面的答案后,我尝试添加另一个导航控制器:
->NavigationController->LoginView->TabBarController->NavigationController->VC1->VC2
但我现在在VC1和VC2中叠加了两个导航栏…您需要将TabBarContoller设置为应用程序的rootViewController。因此,方案应如下所示: tabbarcontroller->Tab1->UINavigationController->ViewContoller1-> ViewController2
在这种情况下,您可以在ViewContoller1和ViewContoller2之间导航,TabBarContoller将保持可见 如果要保留选项卡栏,视图层次结构不应该是这样 ->导航控制器->选项卡控制器->VC1->VC2
您应该将其更改为->TabBarController->NavigationController->VC1->VC2,首先,您需要确保VC1到VC2序列的类型为
(显示例如推送)
。然后,您需要确保VC1嵌入到UINavigationController
NavigationController->TabBarController->NavigationController->First
查看->按钮
点击->FirstDetailsViewController.storyboard(导航控制器
检查是否为初始视图控制器)
所以,每个选项卡都应该有自己的导航控制器?每个选项卡都应该有自己的导航控制器或视图控制器。取决于用例。@NahoumCohen不,你不需要,只需将选项卡栏连接到你想在选项卡栏中使用的每个vc,选择每个vc并执行以下操作:编辑器>嵌入>导航控制器Hanks dzk,但有点复杂的是,我为整个应用程序自定义了导航栏,现在我必须复制它并验证所有可能的错误…在这个问题上花了一个小时后,我想放弃。。。我更新了我的问题
self.hidesBottomBarWhenPushed = false