gpt4 book ai didi

ios - 呈现缓存的 View Controller 时 Swift 应用程序崩溃

转载 作者:行者123 更新时间:2023-11-28 14:57:20 25 4
gpt4 key购买 nike

我的 iOS 应用程序有两个 ViewControllers (VC)。当我按下 VC A 上的按钮时,它显示 VC B。当我按下 VC B 上的按钮时,它显示 VC A。这很好。但是,事实证明,每次切换时它都会为每个 View Controller 创建一个新实例,这会扰乱我的应用程序的某些功能。我试图改变这一点。

正如您在下面看到的,如果一个 VC 实例不存在,我只是创建一个新实例。我在 VC B 中保存 VC A,反之亦然。

VC A文件:

var vcB: BViewController?

func leftPresentVC() {
if(vcB == nil) {
let storyboard = UIStoryboard(name: "Main", bundle: nil)

vcB = storyboard.instantiateViewController(withIdentifier: "vcB") as! BViewController
vcB?.transitioningDelegate = transition
vcB?.modalPresentationStyle = .custom
vcB?.vcA = self
}
present(vcB!, animated: true, completion: {})
}

VC B 文件:

var vcA: AViewController?

func rightPresentVC() {
if(vcA == nil) {

let storyboard = UIStoryboard(name: "Main", bundle: nil)

vcA = storyboard.instantiateViewController(withIdentifier: "vcA") as! AViewController
vcA?.transitioningDelegate = transition
vcA?.modalPresentationStyle = .custom
}
if let vcA = vcA {
present(vcA, animated: true, completion: {})
}
}

函数 leftPresentVC 和 rightPresentVC 在按下按钮时被调用。

所以问题是这样的。当我启动应用程序时,VC A 按计划加载。我单击一个按钮,然后 VC B 按计划显示。然后我单击一个按钮转到 VC A,应用程序崩溃了。我在 VC B 的 present(vcA, animated: true, completion: {}) 中得到一个错误,说 EXC_BAD_ACCESS 并且它给出了一个内存地址。知道问题出在哪里吗?

最佳答案

为什么你要介绍一个相同的东西。

只要解散 VCb,你就会得到 VCa

 dismiss(true, completion: nil)

关于ios - 呈现缓存的 View Controller 时 Swift 应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49211001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com