首先,我知道有几十个问题与我的错误信息相同。但是,我的问题的背景完全不同,所以我无法使用之前的StackOverflow问题解决它。
我创建了一个自定义Segue,昨天一切正常。 今天,我已经进一步修改了我的应用程序,突然之间我的应用程序不再起作用了。
我的应用程序崩溃时出现以下错误消息
在分离的视图控制器上呈现视图控制器是 气馁 - AppName.MainNavigationController:0x7ff19f054a00。
崩溃点是:sourceViewController.present(destinationViewController, animated: false, completion: nil)
今天修改我的应用程序后,我有跟随控制器层次结构
VC:A - > UINAVIGATION CONTROLLER:导航控制器的B - ROOT控制器:C - > *有这个CUSTOM SEGUE * VC:D
- > :代表一个segue。此segue由C(导航控制器的根控制器)
组成这真的很奇怪,因为一切都很完美,现在我遇到了这个崩溃。
这是我的自定义segue的执行方法:
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)
答案 0 :(得分:1)
segue应该在VC A和navigationController B之间,因为VC C被认为是用于导航的rootVC,同样在segue VC A中没有显示导航控制器