Ios 自定义Segue动画不工作

Ios 自定义Segue动画不工作,ios,animation,storyboard,scene,Ios,Animation,Storyboard,Scene,我有一个自定义类为自定义segue动画编写。我正在尝试自定义轻敲手势的动画。在我的故事板中,我有一个导航控制器、主视图和另外两个视图。我将手势连接到另一个视图,并定义了segue要使用的自定义类,但我得到了下面的错误。我有另一个segue使用just Push,效果很好。对我做错了什么有什么看法吗 这是我的班级: - (void) perform { UIViewController *src = (UIViewController *) self.sourceViewControll

我有一个自定义类为自定义segue动画编写。我正在尝试自定义轻敲手势的动画。在我的故事板中,我有一个导航控制器、主视图和另外两个视图。我将手势连接到另一个视图,并定义了segue要使用的自定义类,但我得到了下面的错误。我有另一个segue使用just Push,效果很好。对我做错了什么有什么看法吗

这是我的班级:

- (void) perform {

    UIViewController *src = (UIViewController *) self.sourceViewController;
    UIViewController *dst = (UIViewController *) self.destinationViewController;

    [UIView transitionWithView:src.navigationController.view duration:0.8
                       options:UIViewAnimationOptionTransitionFlipFromBottom
                    animations:^{
                        [src.navigationController pushViewController:dst animated:NO];
                    }
                    completion:NULL];

}
错误:

2012-02-20 16:04:45.889 IdeaStarters[2755:fe03] -[__NSCFDictionary setView:]: unrecognized selector sent to instance 0x6a40010
2012-02-20 16:04:45.891 IdeaStarters[2755:fe03] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary setView:]: unrecognized selector sent to instance 0x6a40010'
*** First throw call stack:
(0x13ba052 0x154bd0a 0x13bbced 0x1320f00 0x1320ce2 0x4fc3e 0x922f40 0x922eeb 0x50268 0x93dd60 0x3f8c54 0x3f8c8f 0x13bbe1a 0x1325821 0x22f46e 0xd6e2c 0xd73a9 0xd75cb 0xd7941 0xe947d 0xe966f 0xe993b 0xea3df 0xea561 0x2064ca 0x50301 0x13bbe72 0x1d6492d 0x1d6e827 0x1cf4fa7 0x1cf6ea6 0x1cf6580 0x138e9ce 0x1325670 0x12f14f6 0x12f0db4 0x12f0ccb 0x12a3879 0x12a393e 0x11a9b 0x2abd 0x2a25 0x1)
terminate called throwing an exception(lldb) 

您可能会发现始终设置此符号断点很有帮助

该断点将自动停止调试器,并使您有机会返回调用堆栈以查看问题的起因

在调用任何东西之前,我经常使用NSAssert来验证状态

NSAssert([segue.destinationViewController isKindOfClass:[ABExpectedClass class]], @"Destination VC must be ABExpectedClass");
我记得有过这样的问题,但它试图调用的选择器不是从我的代码中的内部调用的,通常对nil值进行调用应该不是问题。我只是做错了什么,我使用的断言帮助我纠正了逻辑

尝试在GitHub上查看其他自定义segues。有很多可以作为参考


看起来像我的代码:)请发布完整的.h和.m文件。这对我来说很好。我们需要弄清楚你可能做了哪些不同的事情。错误消息中的setView是否与视图控制器中的其他内容相关?我假设您在序列图像板序列中定义了序列的类和样式。之后,我可能会检查是否可以直接转换到另一个视图,并使用标识符执行segue,以确保您可以点击它。结果发现viewcontroller已损坏或其他内容,我重新创建了整个视图,现在一切正常。我不知道是什么原因导致了这一切,但一切都被设置为完全一样,我的其他序列和作品完美。