应用程序崩溃在runTransitionForCurrentState但没有线索为什么

我试过寻找这个,但没有运气,所以希望有一些上师可能知道答案。

我在iTunes Connect中看到大量的报告与特定的堆栈跟踪崩溃,但是堆栈跟踪显示没有任何用处。

#0. Crashed: main 0 UIKit 0x1871100c0 __56-[UIPresentationController runTransitionForCurrentState]_block_invoke + 324 1 UIKit 0x1871100bc __56-[UIPresentationController runTransitionForCurrentState]_block_invoke + 320 2 UIKit 0x1870630c8 _runAfterCACommitDeferredBlocks + 292 3 UIKit 0x187070a80 _cleanUpAfterCAFlushAndRunDeferredBlocks + 92 4 UIKit 0x186da25a4 _afterCACommitHandler + 96 5 CoreFoundation 0x181c0c728 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 32 6 CoreFoundation 0x181c0a4cc __CFRunLoopDoObservers + 372 7 CoreFoundation 0x181c0a8fc __CFRunLoopRun + 928 8 CoreFoundation 0x181b34c50 CFRunLoopRunSpecific + 384 9 GraphicsServices 0x18341c088 GSEventRunModal + 180 10 UIKit 0x186e1a088 UIApplicationMain + 204 11 MyApp 0x100082e6c main (main.m:19) 12 libdyld.dylib 0x1816d28b8 start + 4 

报告没有模式,发生在iOS 9.1,9.2,9.3-10和各种iPhone和iPad上,没有线索来帮助重现它。

有没有人经历过这样的事情,并对可能导致的事情有一定的认识/怀疑?

我有完全相同的崩溃,我已经找出原因。 我的代码的高度缩减版本看起来像

 [self dismissViewControllerAnimated:YES completion:nil]; // call a method that ends up doing [appRootViewController dismissViewControllerAnimated:NO completion:nil]; 

上面代码片段中的self是模式地在根上呈现的视图控制器。 视图控制器本身也呈现模态上的当前上下文一些其他控制器。 所以我在做的是试图用animation来消除过stream上下文控制器,然后调用其他代码,最终将没有animation的任何呈现的视图控制器从根开始解除。

或者换个angular度来说,当前一个animation解散正在进行时,为刚刚启动的animation解除提供当前上下文的视图控制器将从视图层次中移除。

当在Xcode中重现这个时,它也将以下内容logging到控制台:

transitionViewForCurrentTransition未设置,演示文稿控制器在演示过程中被解散? (<_UIOverCurrentContextPresentationController:0x7faf277d9c30>)