2011-06-24 265 views
2

我有一個UINavigationControl,我想提出一個視圖控制器從上推,並從它推到頂部視圖中刪除了它。iPhone - 動畫視圖控制器呈現

有沒有一種方法,當你調用

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

到另一個動畫,而不是推從右到左的還是我的動畫我自己來修改默認的動畫?

在第二種情況下,我該怎麼辦呢?

謝謝。

+0

這有點不標準。從頂部進行動畫會隱藏當前頂部視圖控制器的導航欄。 – SK9

+0

我在這個控制器上沒有可見的導航欄。但無論如何可以說,我想動畫它向右推動,而不是默認的左邊......我該怎麼做? – Mike

回答

5

進口Quartzcore框架 在.h文件中

#import <QuartzCore/QuartzCore.h> 

添加標題行比,你需要調用next的viewController,只要加入這個動畫線

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"]; 

這裏調用查看控制器並添加超級視圖,當你回到這個視圖時,只需添加同樣的動畫只維持左右,t han set removeFromSuperView ..

classObj = [[ClassController alloc] initWithNibName:@"Xib Name" bundle:[NSBundle mainBundle]]; 
[self.view addSubview:classObj.view]; 
+0

哇,謝謝!!!!!!!!!!!!!!!!!!而已! – Mike

2
+0

感謝,但我特林一個動畫演示的viewController,而不是一個視圖。 – Mike

+0

viewcontroller和UIView沒有區別。所有包括viewcontroller的UIControl都是從UIView繼承而來的。 –

+0

是克雷格是正確的,你也可以動畫視圖 - 控制甚至導航控制器well.You只需要使用控制器觀看動畫,而不是self.view。 +1克雷格 – Sabby