2013-03-22 79 views
1

我開發一個應用程序中,我使用兩個導航控制器和uilocalNotification切換到另一個導航視圖控制器

第一NavigationViewController N1有兩個ViewControllers v1和v2 第二NavigationViewController N2有兩個ViewControllers V3和v4

此外,當應用程序在後臺,並且如果出現UILocalNotification,並且如果我點擊它,應用程序應檢測哪個導航控制器和哪個viewController顯示,然後切換到另一個navigationController的viewcontroller。

例如: - 如果顯示在N1 V2,然後通知被點擊 後, 然後切換的顯示

如何做到這一點在N2至V3?

回答

1

當你想改變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]; 
} 

我希望這對您有所幫助

+0

沒有!實際上,當通知被點擊時,你將如何確定現在正在顯示哪個viewcontroller和哪個navigationController ... ??? – Subbu 2013-03-22 09:51:11

+0

只需在您的AppDelegate或UserDEfault中創建一個BOOL變量,保存這個值並將其從true切換到flase ..當此時發生通知時,檢查是否爲true,然後調用第二個方法,並將該變量設置爲false,否則請先調用方法和設置變量爲真... – 2013-03-22 09:53:26

+0

我想到了standardUserDefaults earler,但後來我認爲會有一些標準的方式。反正,thanx! – Subbu 2013-03-22 09:56:32

相關問題