Ios UITransitionContextFromViewController键返回错误的ViewController

Ios UITransitionContextFromViewController键返回错误的ViewController,ios,objective-c,xcode,ios7,Ios,Objective C,Xcode,Ios7,我想添加从ViewController1到ViewController2的过渡动画。下图显示BaseTabBarController和TableViewController。BaseTabBarController的over.h和.m文件名为(BaseTabBarController);如果我将在基本选项卡栏中添加任何视图,那么它将添加到TableViewController中。我正在从TableViewController推送第三个ViewController。所以在下面的代码中,fromVC

我想添加从ViewController1到ViewController2的过渡动画。下图显示BaseTabBarController和TableViewController。BaseTabBarController的over.h和.m文件名为(BaseTabBarController);如果我将在基本选项卡栏中添加任何视图,那么它将添加到TableViewController中。我正在从TableViewController推送第三个ViewController。所以在下面的代码中,fromVC应该是TableViewController,但它包含BaseTabBarViewController。我不知道这里发生了什么?请提出任何解决方案,以便我能继续前进。我将感谢你们所有人。

-(void)animateTransfion:(id)transitionContext
{
UIViewController*fromVC=(id)[transitionContext ViewControllerWorky:UITransitionContextFromViewControllerKey];
UIViewController*toVC=(id)[transitionContext ViewControllerWorky:UITransitionContextToViewControllerKey];
UIView*containerView=[transitionContext containerView];
UIView*fromView=[fromVC视图];
UIView*toView=[toVC视图];
[containerView添加子视图:toView];
UIView*zoomFromView=[fromVC viewForZoomTransition];
UIView*zoomToView=[toVC viewForZoomTransition];
//代码正在继续…
}

我已经解决了这个问题,并且解决得很好

解决方案: 查看以下屏幕截图:

您会注意到,首先,导航控制器是places,然后是ViewController;之后,将出现一个选项卡控制器;TabBarController的第一项是TableViewController; 当我们从任何选项卡栏项中推送任何视图控制器时,它将推送,因为我们有根导航控制器;因此,无需为每个选项卡添加单独的导航控制器

但是UITransitionContextFromViewControllerKey将返回BaseTabar类。为了解决这个问题,我刚刚为tabBar项添加了一个新的导航控制器。现在,它将从ViewCotroller返回正确的。 以下是正确的屏幕截图:

我正在尝试做类似的事情。但我得到
***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[UINavigationController设置:]:无法识别的选择器发送到实例0x7fc86b5ab1e0'
,因为我正在尝试向模式视图传递一些数据-您是否必须为新的导航控制器设置控制器?@GabrielMSharp我刚刚添加了一个导航控制器;若你们需要传递一些参数,那个么你们需要像在故事板上那个样做。
    -(void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext
{
    UIViewController <ZoomTransitionProtocol> * fromVC = (id)[transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
    UIViewController <ZoomTransitionProtocol> *toVC = (id)[transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
    UIView * containerView = [transitionContext containerView];
    UIView * fromView = [fromVC view];
    UIView * toView = [toVC view];

    [containerView addSubview:toView];

    UIView * zoomFromView = [fromVC viewForZoomTransition];
    UIView * zoomToView = [toVC viewForZoomTransition];

//Code is continuing…

}