无法在applicationWillResignActive中获取当前ViewController

时间:2012-11-16 03:20:57

标签: iphone ios xcode cocoa-touch

我有一个基于故事板的单一视图应用程序;

我的故事板上有3 ViewControllers链接到代码中的3个ViewController类;

我通过这样做浏览ViewControllers

UIStoryboard*  sb = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:[NSBundle mainBundle]];
MenuViewController* mainMenu = [sb instantiateViewControllerWithIdentifier:@"vcMainMenu"];

mainMenu.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentModalViewController:mainMenu animated:YES];

现在我需要从当前有效UIcontrols访问applicationWillResignActive上的不同ViewController,我会根据ViewController访问不同的控件,我正在尝试通过这样做来实现这一目标:

if ([self.window.rootViewController isKindOfClass:[LowProfileViewController class]])
{
    NSLog(@"here!");
}

但它总是返回rootViewController。如何从rootViewController获取当前显示的applicationWillResignActive

请合并NavigationController不是一个选项...

感谢

1 个答案:

答案 0 :(得分:5)

你可以试试这个 -

  1. 制作AppDelegate @property(即currentModelViewController

    @property (nonatomic, retain) UIViewController *currentModelViewController;
    
  2. 对于ViewControllerviewDidAppear

    中的每个viewWillAppear
    appDelegate = [[UIApplication sharedApplication] delegate];
    appDelegate.currentModelViewController = self;
    
  3. 现在这将有效

    if ([self.currentModelViewController isKindOfClass:[LowProfileViewController class]])
    {
        NSLog(@"here!");
    }