Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何将navigationcontroller推送动画设置为;否";在使用故事板时_Iphone_Objective C_Xcode_Uinavigationcontroller_Storyboard - Fatal编程技术网

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

Iphone 如何将navigationcontroller推送动画设置为;否";在使用故事板时,iphone,objective-c,xcode,uinavigationcontroller,storyboard,Iphone,Objective C,Xcode,Uinavigationcontroller,Storyboard,我正在为基于导航的iphone应用程序使用故事板。 我希望ViewController使用“pushviewcontroller”属性进行导航,但同时我不希望它们设置动画。我只想将其动画属性设置为“否” 我如何使用故事板来实现这一点?据我所知,没有方法以声明的方式实现这一点。您可以手动调用 [sourceController pushViewController:destination animated:NO]; 或者,如果您一心想使用segue,您可以创建自己的UIStoryboardSeg

我正在为基于导航的iphone应用程序使用故事板。 我希望ViewController使用“pushviewcontroller”属性进行导航,但同时我不希望它们设置动画。我只想将其动画属性设置为“否”


我如何使用故事板来实现这一点?

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

[sourceController pushViewController:destination animated:NO];

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

要通过@azethoth扩展答案,创建无动画segue非常简单:

@interface NoAnimationSegue : UIStoryboardSegue
@end

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

请注意,自定义分段的行为类似于模式推送,而不类似于常规推送,这意味着您在情节提要中不会有推断的模拟度量,并且由于它是“模式”的,因此呈现视图控制器视图将退出viewstack,从而忘记透明度功能。