2

是否可以检查代码中哪个 UIViewController 场景处于活动状态?

我有一个推送通知进入应用程序,并且想要根据用户所处的视图做不同的事情,如下所示:

应用委托:

- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo
{
    if (tableViewController == active) 
       //get data from server
    else if (detailedViewController == active) 
        //Get Image from server
}

谢谢

4

3 回答 3

3

发布本地通知:

  [NSNotificationCenter defaultCenter] postNotificationName:@"foo" object:whatever];

并让所有适当的 viewControllers 监视它:

    [[NSNotificationCenter defaultCenter] addObserver:self 
                                         selector:@selector(handleFoo:) 
                                             name:@"foo" 
                                           object:nil];

viewControllers 将根据需要添加或删除观察者。

于 2012-04-26T12:09:17.127 回答
2
if ( _viewController.isViewLoaded == YES)
{
    NSLog(@"Yes");

}
else
{
    NSLog(@"No");
}

希望对你有帮助...

于 2012-04-26T12:10:10.710 回答
1

好吧,我猜你使用了一些 contaneir 视图控制器。如果你使用的是 aUITabBarController你可以问自己:

@property(nonatomic, assign) UIViewController *selectedViewController

或其:

@property(nonatomic) NSUInteger selectedIndex

如果您使用的是UINavigationController

@property(nonatomic, readonly, retain) UIViewController *visibleViewController

如果您更喜欢对容器进行细粒度控制,您可以使您的 Appdelegate 符合相应的委托协议:UITabbarControllerDelegateUINavigationControllerDelegate

于 2012-04-26T12:19:52.193 回答