ios - 以编程方式在两个 UIViewController 之间转换(Xcode 9、Swift 4)
问题描述
我目前正在开发的应用程序要求我不使用任何故事板。因此,我需要以编程方式完成所有操作。我似乎正在努力解决的一件事是在两个 UIViewController 之间切换。
问题是每次我调用该self.present()
方法时;它创建了一个我想展示的类的全新实例。因此,当我进入 Xcode 的可视化调试器时,我看到了超过 15 个不同的视图,它们都堆叠在一起,只是彼此的实例化。例如:View1、View2、View1、View2、View1、View2、View1……这种不断重复的视图严重损害了我的应用程序的性能。所以我的问题:
有没有一种方法可以在我的两个 UIViewControllers 之间切换,而无需不断地为每个 UIViewControllers 创建一个新实例?
同样,我在删除所有情节提要的情况下完成所有这些工作。所以我需要的解决方案只需要使用代码来实现。
解决方案
我认为你应该创建主 ViewController。
如果您保留两个实例视图控制器,请在 mainViewController 中创建两个控制器。然后将其保存在主视图控制器中。
如果您想更改第二个视图控制器弹出导航控制器并推送另一个,或者只是推送其他控制器,则推送您想要在主视图控制器的导航中显示的视图控制器。
如果您想保留您的实例视图控制器,我认为这是您的最佳选择
推荐阅读
- react-native - 在导航状态中发现了不可序列化的值。检查:登录> params.store.dispatch(功能)
- core-data - 想将系统设置存储在核心数据中
- c++ - 不允许用返回非常量引用的方法覆盖返回常量引用的虚方法
- node.js - 从支付服务提供商重定向后未设置 Cookie
- laravel - Laravel API 路由 - 异常:“Symfony\Component\HttpKernel\Exception\NotFoundHttpException”
- spring-boot - Kafka消费者错误处理偏移重置
- yolo - 如何使用 yolo v3 模型(有两个输出)检测 ML C# 中的对象?
- elasticsearch - 由于 JNA,在 RHEL 7.8 上安装 elastic 7.5 会导致内存违规 sig=6
- xcode - 如何从 iOS 支持中清除 Xcode 中的垃圾文件
- oracle - UCM中配置文件的路径是什么