Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 移动到其他视图控制器时保留选项卡栏_Ios_Swift - Fatal编程技术网

Ios 移动到其他视图控制器时保留选项卡栏

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

我有一个这样的故事板

->导航控制器->登录视图->选项卡控制器->VC1->VC2

我没有设法将标签栏从VC1“移动”到VC2

我尝试了以下方法:

  • 赛格(表演型)

  • 实例化程序实例:

    // 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