首页 > 解决方案 > 以编程方式在两个 UIViewController 之间转换(Xcode 9、Swift 4)

问题描述

我目前正在开发的应用程序要求我不使用任何故事板。因此,我需要以编程方式完成所有操作。我似乎正在努力解决的一件事是在两个 UIViewController 之间切换。

问题是每次我调用该self.present()方法时;它创建了一个我想展示的类的全新实例。因此,当我进入 Xcode 的可视化调试器时,我看到了超过 15 个不同的视图,它们都堆叠在一起,只是彼此的实例化。例如:View1、View2、View1、View2、View1、View2、View1……这种不断重复的视图严重损害了我的应用程序的性能。所以我的问题:

有没有一种方法可以在我的两个 UIViewControllers 之间切换,而无需不断地为每个 UIViewControllers 创建一个新实例?

同样,我在删除所有情节提要的情况下完成所有这些工作。所以我需要的解决方案只需要使用代码来实现。

标签: iosswiftuiviewcontrolleruistoryboardsegue

解决方案


我认为你应该创建主 ViewController。

如果您保留两个实例视图控制器,请在 mainViewController 中创建两个控制器。然后将其保存在主视图控制器中。

如果您想更改第二个视图控制器弹出导航控制器并推送另一个,或者只是推送其他控制器,则推送您想要在主视图控制器的导航中显示的视图控制器。

如果您想保留您的实例视图控制器,我认为这是您的最佳选择


推荐阅读