5

如何在显示模态时从模态序列中删除过渡效果,如下所示:

[self performSegueWithIdentifier:@"SomeIdentifier" sender:self];

我知道我可以进入情节提要并在 4 种不同的动画之间切换,但我不想要任何动画!如何删除它们?

我知道我可以这么说presentModalViewController animated: NO,但我不会也不能这样称呼它。我需要使用该performSegueWithIdentifier方法。

4

4 回答 4

15

在情节提要中,您可以选择您的 segue,并在属性检查器中取消选中“动画”。那应该这样做。

于 2013-08-01T06:44:39.880 回答
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。完成此操作后,Xcode 似乎足够聪明,可以在将来在 UIViewController 之间按住 CTRL 拖动时添加“无动画转场”作为选项。

于 2012-11-26T14:19:20.413 回答
9

如果您需要转场但不想要动画,则需要制作自定义转场(没有动画)。

您应该在视图控制器编程指南中查看 Apple 的“创建自定义转场”示例,他们会在没有动画的情况下进行自定义模态转场(就像您想要的那样)。

于 2012-08-06T19:43:09.027 回答
-1

我们可以的另一种方式

YourViewController *aYourViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"aYourViewControllerIdentifier"];
[self.navigationController pushViewController:aYourViewController animated:NO];

@"aYourViewControllerIdentifier"并在情节提要中添加to view 控制器。

于 2015-01-01T14:19:31.087 回答