【问题标题】:Navigation between view controllers视图控制器之间的导航
【发布时间】:2016-04-20 12:38:14
【问题描述】:

在我的应用程序中,我有四个视图控制器 (VC):

  • 首页
  • 消息
  • 简介
  • 设置

在每个 VC 上,一个不透明的条形底部,每个 VC 有四个条形按钮项(主页、消息、配置文件、设置)。

当我点击一个条形按钮项目时,我使用 segue(显示)管理导航并加载所选的 VC。

我想找到一种不再加载已经加载过一次的 VC 的方法。 例如:

  • 应用程序已启动
  • HOME VC 已加载并出现
  • 用户点击 PROFIL
  • PROFIL VC 已加载并出现
  • 用户点击主页
  • 没有调用viewDidLoad方法就出现了HOME VC,因为四步前已经加载过了

我尝试了所有类型的转场(显示、模态呈现等)和presentViewController 方法,但每次都调用viewDidLoad 方法。

有没有一种简单的方法可以做到这一点,还是我必须用一个布尔值来管理它以指示视图已经加载?

我想要一个类似WhatsApp 应用程序的菜单。

【问题讨论】:

    标签: swift uiviewcontroller uinavigationcontroller ios9


    【解决方案1】:

    WhatsApp 在底部使用 标签栏。你在使用工具栏吗? ViewDidLoad 每个视图只执行一次,除非您从内存中卸载视图。

    调整您的应用最简单的方法是在您的应用中添加一个Tab Bar Controller,然后删除自动添加的2个视图控制器并设置一个关系(只需就像一个segue;它在每个视图控制器和标签栏控制器之间的segue类型之下。要更改图标,请在标签栏控制器视图中修改它们。然后 segues 将像在 WhatsApp 中一样自动运行。 :)

    【讨论】:

    • 正是我想要的,并且在我的实际项目中很容易实现。谢谢!