1

我正在开发一个应用程序,其中我使用两个导航控制器和 uilocalNotification

第一个 NavigationViewController N1 有两个 ViewControllers v1 和 v2 第二个 NavigationViewController N2 有两个 ViewControllers v3 和 v4

此外,当应用程序处于后台时,如果 UILocalNotification 出现并且如果我单击它,应用程序应该检测显示哪个导航控制器和哪个视图控制器,然后切换到另一个导航控制器的视图控制器。

例如:- 如果显示 N1 中的 v2,则单击通知后,将显示切换到 N2 中的 v3

这该怎么做 ??

4

1 回答 1

1

只需将此波纹管方法粘贴到您的AppDelegate.m文件中,并在您想要更改时调用特定方法UINavigationController...

例如:如果你在v2并且N1通知改变了然后调用波纹管方法像波纹管......

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate setRootViewControllerN2];

使用下面的方法来切换带有动画的导航控制器..

1. setRootViewControllerN1 : 这是用于设置 RootViewController 和 N1 导航控制器。

-(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 : 这是用于设置 RootViewController 和 N2 导航控制器。

-(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];
}
于 2013-03-22T08:43:05.580 回答