當你想改變UINavigationController
只需粘貼你AppDelegate.m
文件這個波紋管的方法和調用特定的方法...
例如:如果你是在N1
和通知v2
改然後調用像波紋管波紋管的方法。 ..
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate setRootViewControllerN2];
使用這種波紋管的方法來與動畫開關導航控制器..
1. setRootView ControllerN1:這是爲了設置帶有N1 navigationController的RootViewController。
-(void)setRootViewControllerN1{
self.window.rootViewController = N1;
[self.window makeKeyAndVisible];
CATransition *animation = [CATransition animation];
[animation setDelegate:self];
[animation setType:kCATransitionFade];
[animation setDuration:0.5];
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:
kCAMediaTimingFunctionEaseInEaseOut]];
[[self.window layer] addAnimation:animation forKey:kAnimationKey];
}
2. setRootViewControllerN2:這是用於與N2 navigationController集RootViewController的。
-(void)setRootViewControllerN2{
self.window.rootViewController = N2;
[self.window makeKeyAndVisible];
CATransition *animation = [CATransition animation];
[animation setDelegate:self];
[animation setType:kCATransitionFade];
[animation setDuration:0.5];
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:
kCAMediaTimingFunctionEaseInEaseOut]];
[[self.window layer] addAnimation:animation forKey:kAnimationKey];
}
我希望這對您有所幫助
沒有!實際上,當通知被點擊時,你將如何確定現在正在顯示哪個viewcontroller和哪個navigationController ... ??? – Subbu 2013-03-22 09:51:11
只需在您的AppDelegate或UserDEfault中創建一個BOOL變量,保存這個值並將其從true切換到flase ..當此時發生通知時,檢查是否爲true,然後調用第二個方法,並將該變量設置爲false,否則請先調用方法和設置變量爲真... – 2013-03-22 09:53:26
我想到了standardUserDefaults earler,但後來我認爲會有一些標準的方式。反正,thanx! – Subbu 2013-03-22 09:56:32