2012-08-06 3 views
5

セグエません:私はストーリーボードに行くと、4つの異なるアニメーションを切り替えることができます知っているが、私はしないでくださいモーダルがどのようにこのようなモーダル表示するときに、モーダルセグエからトランジションエフェクトを削除するには、no移行

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

を任意のものが欲しい!どうすれば削除できますか?

私はpresentModalViewController animated: NOと言うことができると知っていますが、私はそうとは言いません。私はperformSegueWithIdentifierメソッドを使用する必要があります。

答えて

9

segueが必要でアニメーションが不要な場合は、アニメーションなしのカスタムセグを作成する必要があります。

View ControllerプログラミングガイドのApple "creating custom segues" exampleを見てください。アニメーションなしでカスタムモーダルセグを行います。

+0

優れたmuchos gracias – MobileMon

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として 'Custom'を選択してくださいSegue ClassボックスにBVNoAnimationSegueと入力します。これを済ませた後、将来的にUIViewControllersの間でCTRL-ドラッグすると、オプションとして「アニメーションなし」を追加するのに十分なほど賢明なようです。

15

ストーリーボードでは、セグを選択して、属性インスペクタで[アニメーション]をオフにします。それはそれを行う必要があります。

+1

ベストアンサー!これは正式な回答でなければなりません! –

+5

これはモーダルスタイルでのみ機能し、プッシュのアニメーションオプションはありません –

-1

もう一つの方法は、我々は

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

とは、あなたのストーリーボードにコントローラを表示する@"aYourViewControllerIdentifier"を追加することができます。

関連する問題