2011-06-24 8 views
2

私はUINavigationControlを持っています。ビューコントローラを上からプッシュし、上からプッシュするビューコントローラを削除したいと思います。iPhone - ビューコントローラプレゼンテーションをアニメーション化する

あなたが右から左にプッシュするのではなく、別のアニメーションに

[self.navigationController pushViewController:myViewController animated:YES]; 

を呼び出すか、私はそれを自分自身をアニメーション化しなければならないの際に使用されるデフォルトのアニメーションを変更する方法はありますか?

2番目のケースでは、どうすればよいですか?

ありがとうございました。

+0

これは少し非標準です。上からアニメートすると、現在のトップビューコントローラのナビゲーションバーが非表示になります。 – SK9

+0

私はこのコントローラーに目に見えるナビゲーションバーを持っていません。しかし、とにかく私は左にデフォルトの代わりに右に押してアニメートしたいと言うことができます...私はどのようにそれを行うのですか? – Mike

答えて

5

インポートQuartzcoreフレームワークは、ちょうどここで

CATransition *animation = [CATransition animation]; 
[animation setDelegate:self]; 
[animation setType:kCATransitionPush]; 
[animation setSubtype:kCATransitionFromRight]; 
[animation setDuration:0.2f]; 
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]]; 
[[self.view layer] addAnimation:animation forKey:@"pushIn"]; 

があり、このアニメーションの行を追加します。コントローラを表示してスーパービューに追加するコール。このビューに戻ると、同じアニメーションを追加するだけで、左右にのみ維持されます。 han set removeFromSuperView ..

+0

うわー、ありがとう!!!!!!!!!!!!!!!!!!それでおしまい! – Mike

2

ここでは、UIViewの独自のアニメーションを作成するための優れたチュートリアルです。

http://developer.apple.com/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_intro/chapter_1_section_1.html

あなたは次のViewControllerを呼び出す必要がどこよりも.hファイル

#import <QuartzCore/QuartzCore.h> 

にヘッダ行を追加します

+0

ありがとうございますが、ビューではなくviewControllerプレゼンテーションをアニメーション化しています。 – Mike

+0

ビューコントローラとUIViewには違いはありません。 ViewControllerを含むすべてのUIControlはUIViewから継承されます。 –

+0

はいCraigが正しいです。また、ナビゲーションコントローラでもviewcontrollerをアニメートすることができます。コントローラviewを使用してself.viewの代わりにアニメーションを作成するだけで済みます。 +1 for Craig – Sabby

関連する問題