【问题标题】:Swift how to mimic navigationController , without navigation barSwift 如何模仿 navigationController ,没有导航栏
【发布时间】:2016-06-02 15:16:51
【问题描述】:

我想将 viewController 保留在内存中,稍后通过示例调用 vc3 和在 vc6 之后不再次初始化它们,以自定义顺序显示它们,它们必须保持相同的状态。我曾想过使用 navigationController ,但我不想要导航栏,而且我不确定我可以按自定义顺序调用 viewcontroller。我试图将 viewController 放在全局数组中,但是当我调用它们时出现错误:“应用程序试图以模态方式呈现活动控制器”。您对此有何看法,我如何处理我的视图控制器并显示它们而无需再次初始化它们。我一直在听。

我读过在 IOS 中我们必须回收视图,所以我有一个问题。处理回收视图的最佳方法是什么。如果我想在不初始化的情况下为我的用户提供相同的视图,则视图控制器负责该视图。我必须怎么做,最好的结构选择是什么.. 有一个大的 viewcontroller 并使用 addsubview removesubview 处理视图...或每个视图类型的许多 viewcontroller,在这里我不知道如何回收和跟踪我的 viewcontroller(我不想使用导航控制器)。

【问题讨论】:

    标签: swift navigation navigationcontroller


    【解决方案1】:

    首先你可以在导航控制器中隐藏导航栏:

    • self.navigationBarHidden = true(用于 UINavigationController)

    • self.navigationController?.navigationBarHidden = false(用于 UINavigationController 中的 UIViewController)

    在您的情况下,将其存储在全局数组中也可以(但最好有辅助类),因此当您的 UIViewControllers 将在内存中时 - 您可以重复使用它们。

    您的问题与导航有关(好的答案在这里 - https://stackoverflow.com/a/7534019/1830598)。因此,您必须通过再次关闭和呈现 UINavigationController 来管理此订单,或者找到其他解决方案。

    您的用例示例:

    1. 使用任何 ViewController 呈现 UINavigationController
    2. 将任何视图控制器存储为storedViewController
    3. UINavigationControllerrootViewController(即显示)处添加代码:self.navigationController?.viewControllers = [storedViewController, self]
    4. 现在您将位于UINavigationController 的第二个视图控制器,按回您将到达您的storedViewController

    【讨论】:

    • 谢谢,在navigationController中,我可以按自定义顺序调用viewcontroller吗?我已阅读您建议的帖子,但没有找到帮助的方法。当我对 VC3 使用 presentViewController 时,VC2 是什么,它被杀死了吗?或者它留在记忆中。你谈到了助手类,你想到了导航控制器类吗?
    • @user2718075 你可以用它的属性在代码中设置导航控制器中视图控制器的顺序,比如navigationController?.viewControllers = [VC2, VC1]
    • @user2718075 添加了示例用例示例
    • 应用程序此时带有大量代码。我认为设置一个navigationController 会干扰很多,现在导航还可以。 ,我需要一种简单的方法(如果存在)向用户显示所有打开的视图控制器并让他选择一个。在我的应用程序中,一些视图控制器打开文件,如视频、pdf 等......用户查阅文档并使用菜单显示所有打开的视图控制器,他可以单击并以与离开时相同的状态显示它。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-28
    • 1970-01-01
    • 1970-01-01
    • 2017-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多