如何在显示模态时从模态segue中删除过渡效果:
[self performSegueWithIdentifier:@"SomeIdentifier" sender:self];
我知道我可以进入故事板并在4种不同的动画之间切换,但我不想要任何动画!如何删除它们?
我知道我可以说presentModalViewController animated: NO
但我没有,也不能这样称呼它。我需要使用performSegueWithIdentifier
方法。
答案 0 :(得分:15)
在故事板中,您可以选择您的segue,并在“属性”检查器中取消选中“动画”。应该这样做。
答案 1 :(得分:11)
以下是无动画片段的完整来源:
BVNoAnimationSegue.h
#import <UIKit/UIKit.h>
@interface BVNoAnimationSegue : UIStoryboardSegue
@end
BVNoAnimationSegue.m
#import "BVNoAnimationSegue.h"
@implementation BVNoAnimationSegue
- (void)perform
{
[[self sourceViewController] presentModalViewController:[self destinationViewController] animated:NO];
}
@end
要使用此功能,请将文件添加到项目中(例如,作为BVNoAnimationSegue.m / .h),然后在故事板中,选择“自定义”作为您的Segue类型,并在 Segue Class 框中键入BVNoAnimationSegue 。在您完成此操作后,当您在将来在UIViewControllers之间进行CTRL拖动时,Xcode似乎非常聪明地添加了“no animation segue”作为选项。
答案 2 :(得分:9)
如果您需要segue但不想要动画,则需要制作自定义segue(不带动画)。
你应该在视图控制器编程指南中查看Apples "creating custom segues" example,他们会做一个没有动画的自定义模态segue(就像你想要的那样)。
答案 3 :(得分:-1)
我们可以采取的另一种方式
YourViewController *aYourViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"aYourViewControllerIdentifier"];
[self.navigationController pushViewController:aYourViewController animated:NO];
并将@"aYourViewControllerIdentifier"
添加到故事板中的视图控制器。