如何在显示模态时从模态序列中删除过渡效果,如下所示:
[self performSegueWithIdentifier:@"SomeIdentifier" sender:self];
我知道我可以进入情节提要并在 4 种不同的动画之间切换,但我不想要任何动画!如何删除它们?
我知道我可以这么说presentModalViewController animated: NO
,但我不会也不能这样称呼它。我需要使用该performSegueWithIdentifier
方法。
如何在显示模态时从模态序列中删除过渡效果,如下所示:
[self performSegueWithIdentifier:@"SomeIdentifier" sender:self];
我知道我可以进入情节提要并在 4 种不同的动画之间切换,但我不想要任何动画!如何删除它们?
我知道我可以这么说presentModalViewController animated: NO
,但我不会也不能这样称呼它。我需要使用该performSegueWithIdentifier
方法。
在情节提要中,您可以选择您的 segue,并在属性检查器中取消选中“动画”。那应该这样做。
这是无动画转场的完整来源:
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。完成此操作后,Xcode 似乎足够聪明,可以在将来在 UIViewController 之间按住 CTRL 拖动时添加“无动画转场”作为选项。
如果您需要转场但不想要动画,则需要制作自定义转场(没有动画)。
您应该在视图控制器编程指南中查看 Apple 的“创建自定义转场”示例,他们会在没有动画的情况下进行自定义模态转场(就像您想要的那样)。
我们可以的另一种方式
YourViewController *aYourViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"aYourViewControllerIdentifier"];
[self.navigationController pushViewController:aYourViewController animated:NO];
@"aYourViewControllerIdentifier"
并在情节提要中添加to view 控制器。