Ios presentViewController方法从ViewController中提供animateTransition错误

Ios presentViewController方法从ViewController中提供animateTransition错误,ios,objective-c,ios7,Ios,Objective C,Ios7,我目前正在开发一个自定义的ViewController,它至少管理一个,最多管理五个ViewController。它们以“加号”对齐,其中强制视图控制器为中心视图控制器,其他四个可以位于中心视图控制器的任何一侧。该类在本项目中为TDSlidingViewController 我遇到的问题是,哪些视图控制器被传递到animateTransition。以下是准备转换的代码(位于TDSlidingViewController.m中): 以下代码在animateTransition中运行: UIView

我目前正在开发一个自定义的
ViewController
,它至少管理一个,最多管理五个
ViewController
。它们以“加号”对齐,其中强制视图控制器为中心
视图控制器
,其他四个可以位于中心
视图控制器
的任何一侧。该类在本项目中为
TDSlidingViewController

我遇到的问题是,哪些视图控制器被传递到animateTransition。以下是准备转换的代码(位于
TDSlidingViewController
.m中):

以下代码在animateTransition中运行:

UIView *container = transitionContext.containerView;

UIViewController *currentViewController = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
UIViewController *targetViewController = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];

NSLog(@"%@", [currentViewController class]);
引起我注意的是,NSLog不是打印
\u currentViewController
,而是打印
SlidingViewController
TDMainViewController
的容器;转换将删除整个
ViewController
堆栈,并显示一个
ViewController

我相信这会导致[self.slidingControllerDatasource viewControllerForLocation:self.previousLocation]dismissViewControllerAnimated:YES completion:^{}]以使用以下输出崩溃(
TDEditorViewController
是最初从转换显示的控制器):

***由于未捕获的异常“UIViewControllerHierarchyConsistency”而终止应用程序,原因:“控制器的presentedViewController自身处于关闭状态,原因为:”
我搜索了又搜索,我能找到的唯一相似的链接是,它还没有被回答


任何帮助都将不胜感激。

因此我做了更多的研究,得出结论,缺陷就在设计中。我没有尝试在容器视图中显示视图控制器,而是简单地传递手势,以便它知道何时移回中心。最初将作为容器视图的
StackViewController
现在可以方便地从背景转换,握住手势识别器,管理动画和传递数据。改变的只是它没有显示出来

UIView *container = transitionContext.containerView;

UIViewController *currentViewController = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
UIViewController *targetViewController = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];

NSLog(@"%@", [currentViewController class]);
*** Terminating app due to uncaught exception 'UIViewControllerHierarchyInconsistency', reason: 'presentedViewController for controller is itself on dismiss for: <`TDEditorViewController`: 0x8d69250>'