如何在使用故事板时将navigationcontroller推送动画设置为"否"

Pri*_*bra 6 iphone xcode objective-c storyboard uinavigationcontroller

我正在使用故事板进行基于导航的iphone应用程序.我希望viewcontrollers使用"pushviewcontroller"属性进行导航,但同时我不希望它们设置动画.我只想将他们的Animation属性设置为"NO"

我怎么能用故事板做到这一点?

Ben*_*ynn 6

要扩展@azethoth的答案,创建一个无动画segue就像这样简单:

@interface NoAnimationSegue : UIStoryboardSegue
@end

@implementation NoAnimationSegue    
- (void)perform
{
    [[self.sourceViewController navigationController] pushViewController:self.destinationViewController animated:NO];
}    
@end
Run Code Online (Sandbox Code Playgroud)


小智 2

据我所知,没有办法以声明的方式做到这一点。您可以手动调用

[sourceController pushViewController:destination animated:NO];
Run Code Online (Sandbox Code Playgroud)

或者,如果您执意要使用 segue,您可以创建自己的子类UIStoryboardSegue并实现perform方法来执行上述操作。然后在故事板中,您可以使用自定义 segue 并输入您的 segue 子类的名称。