我遇到了同样的问题并且能够解决它。
自定义转换 API 没有很好的文档记录,我需要大量的试验和错误才能使一切正确。
让我带你了解我是如何让它在没有任何内存问题的情况下正常工作的:
以下是球员:
VCA = 想要以模态方式呈现 VCB 的视图控制器
VCB = 以模态方式呈现的视图控制器(由 VCA 呈现)
TC = 执行自定义动画的自定义转换控制器对象。
符合“ UIViewControllerAnimatedTransitioning ”的 NSObject 子类。
将在 TD 中实例化。
TD = 为系统提供转换控制器的自定义转换委托对象。符合“ UIViewControllerTransitioningDelegate ”的NSObject子类
现在让我们展示一个 VCB 的实例
self = VCA 的一个实例
myModalViewController = 是 self 的一个强属性
self.myModalViewController = [[VCB alloc] init];
[self.myModalViewController setModalPresentationStyle: UIModalPresentationCustom];
[self.myModalViewController setTransitioningDelegate: [[TD alloc] init]];
[self presentViewController: self.myModalViewController
animated:YES
completion:NULL];
稍后,VCB 要求 VCA 被解雇
self = VCA 的一个实例
myModalViewController = 前面介绍的 VCB 的模态呈现实例
[self dismissViewControllerAnimated:YES
completion:^{
[self.myModalViewController setTransitioningDelegate: nil]; // DO THIS!!!!
self.myModalViewController = nil;
}];
我希望这有帮助。它确实对我有用。