当前位置: 首页 > 面试题库 >

移至另一个视图控制器时保留TabBar

刘永望
2023-03-14
问题内容

我有一个这样的故事板

-> NavigationController-> LoginView-> TabBarController-> VC1-> VC2

我没有设法从VC1到VC2进行“移动”并保持选项卡栏。

我尝试了以下方法:

  • Segue(显示类型)

    self.performSegueWithIdentifier("toVC2segue", sender: self)
    
  • 编程方式实例化:

        // 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中叠加了2个导航栏…


问题答案:

您需要将TabBarContoller设置为应用程序的rootViewController。因此方案应如下:

TabBarContoller-> Tab1-> UINavigationController-> ViewContoller1->
ViewContoller2。

在这种情况下,您可以在ViewContoller1和ViewContoller2之间导航,并且TabBarContoller将保持可见。



 类似资料:
  • 问题内容: 我没有找到有关此问题的文章,但没有一个解决我的问题。 就像我说的那样。 ViewControllerA ViewControllerB 我试图将添加为的子视图,但是它 抛出类似“ ” 的错误。 下面是代码… ViewControllerA ViewControllerB只是一个带有标签的简单屏幕。 ViewControllerB EDIT 根据用户答案的​​建议解决方案,ViewCon

  • 我找到了一些关于这个问题的帖子,但是没有一个能解决我的问题。 说像我已经... ViewControlllerA ViewControlllerB 我试图将ViewControlllerB添加为ViewControlllerA中的子视图,但是,它抛出了一个错误,如""。 下面是代码。。。 视图控制器 ViewControllerB只是一个带有标签的简单屏幕。 视图控制器B 编辑

  • 问题内容: 我有一个storyviewcontroller,它的视图上有对象。我需要更改UILabel(在storyviewcontroller中)上的文本,并将视图加载到数组上。我已将IBOutlet连接到storyviewcontroller中的标签。 我已经创建了storyviewcontroller类的对象,并且能够访问其变量。但是,在创建storyviewcontroller的对象之后,

  • 问题内容: 我正在使用Swift,在tableview的didSelectRowAtIndexPath方法中出现错误。我想将值传递给另一个视图控制器,即“ secondViewController”。这里,EmployeesId是一个数组。相关代码如下: 但是我收到此错误:致命错误:展开一个Optional值时意外发现nil。 任何帮助将不胜感激。 问题答案: 这是一个有两个假设的一般解决方案。首

  • 问题内容: 我正在使用SpriteKit制作游戏。我有3个viewControllers:选择级别vc,游戏vc和win vc。游戏结束后,我想显示Win vc,然后如果我按Win vc上的“确定”按钮,我想关闭Win vc和游戏vc(将两个视图控制器弹出堆栈)。但我不知道该怎么办,因为如果我打电话 Win vc(堆栈顶部)被关闭了,所以我不知道在哪里再次调用它来关闭游戏vc。有什么方法可以在不使

  • 以下的一段代码相当于定义一个ParameterizableViewController视图控制器的快捷方式,该控制器会立即将一个请求转发(forwards)给一个视图。请确保仅在以下情景下才使用这个类:当控制器除了将视图渲染到响应中外不需要执行任何逻辑时。 以下是一个例子,展示了如何在MVC Java编程配置方式下将所有"/"请求直接转发给名字为"home"的视图: @Configuration