【问题标题】:Switch view controller without creating new instance切换视图控制器而不创建新实例
【发布时间】:2023-03-30 03:52:01
【问题描述】:

在我的应用程序中使用三个视图控制器。我刚刚使用故事板 segues 创建了导航。在使用 segues 导航到其他视图时,为视图控制器创建新实例。考虑从 A->B-C 导航。如何从已经保留在内存中的 C 导航到 A 或 B? 注意:这里我不能使用dismissviewcontroller,它会删除C的实例。这样我的导航应该是已经创建的实例。

【问题讨论】:

  • 您需要解释一下您正在使用哪些过渡 - 模态?推?
  • 显示所有连接
  • 它不是视图控制器的父子关系。我们可以从任何一个视图控制器导航到其他视图控制器。我无法在我的应用中使用导航控制器。

标签: ios uiviewcontroller navigation


【解决方案1】:

根据您的描述,您应该有一个自定义控制器来管理呈现的视图控制器并允许视图控制器在彼此之间切换 - 有点像自定义标签栏控制器,但没有可见的标签栏...

此自定义控制器将在第一次按需创建视图控制器,然后将它们存储为实例变量,以便下次请求时可以重用它们。

在这个模型中,你没有“返回”的概念,你只有当前呈现的视图控制器和其他一些你可以切换到的视图控制器。

【讨论】:

    【解决方案2】:

    如果你想去A,你可以随时使用

    [self.navigationController popToRootViewControllerAnimated:YES];(It will take programming control to root of navigation controller which is A in your case)
    

    如果你想去 B [self.navigationController popViewControllerAnimated:YES];(它只会弹出当前视图控制器)

    【讨论】:

      猜你喜欢
      • 2023-04-06
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-26
      • 1970-01-01
      • 2018-12-08
      相关资源
      最近更新 更多