gpt4 book ai didi

ios - 自定义 segue 使应用程序崩溃 - "Presenting view controllers on detached view controllers is discouraged"

转载 作者:行者123 更新时间:2023-11-28 06:01:43 24 4
gpt4 key购买 nike

首先,我知道有几十个问题和我的错误信息一样。但是,我的问题的上下文完全不同,所以我无法用以前的 StackOverflow 问题解决它。

我创建了一个自定义 Segue,昨天一切正常。今天,我进一步修改了我的应用程序,突然间我的应用程序不再运行了。

我的应用程序崩溃并显示以下错误消息

Presenting view controllers on detached view controllers is discouraged - AppName.MainNavigationController: 0x7ff19f054a00.

崩溃点是:sourceViewController.present(destinationViewController, animated: false, completion: nil)

今天修改我的应用程序后,我有以下 Controller 层次结构
VC: A -> UINAVIGATION CONTROLLER: B - NAVIGATIONCONTROLLER 的根 Controller : C -> * WITH THIS CUSTOM SEGUE * VC: D

-> :代表一个segue。这个segue是从C做的,navigation Controller的root controller

这真的很奇怪,因为一切正常,但现在我遇到了崩溃。

这是我自定义转场的执行方法:

       override func perform() {


//.... custom segue animation......
//.....

UIView.animate(withDuration: DURATION, animations: {

// Some more animations
self.bubble.transform = CGAffineTransform.identity
destinationView?.transform = CGAffineTransform.identity
destinationView?.alpha = 1
destinationView?.center = sourceCenter!
destinationView?.layer.cornerRadius = 1


}, completion: { (_) in

self.bubble.isHidden = true
destinationView?.clipsToBounds = defaultClipsToBoundsSettings!

//finally showing it
DispatchQueue.main.async
{
//********* THIS IS THE CRASH POINT
sourceViewController.present(destinationViewController, animated: false, completion: nil)


}

})



}

这里我从我的按钮操作方法执行 segue:

castedRootController.performSegue(withIdentifier: "ViewShare", sender: nil)

最佳答案

segue 应该在 VC A 和 navigationController B 之间,因为 VC C 被认为是导航的根 VC,而且在 segue 期间 VC A 没有显示 navigationController

关于ios - 自定义 segue 使应用程序崩溃 - "Presenting view controllers on detached view controllers is discouraged",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49479213/

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