你的AppDelegate將有一個窗口屬性,該窗口將有一個rootViewController屬性。你可以在這裏找到你的viewController。
如果您使用TabBarController,rootviewcontroller將是tabbarcontroller,您可以調用tabbarcontroller的selectedViewController來獲取當前的viewController。
UIViewController *rootViewController = [[[[UIApplication sharedApplication] delegate] window] rootViewController];
if ([rootViewController isKindOfClass:[UITabBarController Class]])
rootViewController = ((UITabBarController *)rootViewController).selectedViewController;
else if ([rootViewController isKindOfClass:[UINavigationController Class]])
rootViewController = ((UINavigationController *)rootViewController).topViewController;
[rootViewController viewDidAppear];
如果您有導航控制器,或模態的觀點更復雜的視圖層次,你可以在presentedViewController,或致電topViewController。
有很好可能做到這一點更簡單的方法,但我認爲,如果你添加一個屬性到您的應用程序委託@property(強,非原子)的UIViewController * currentViewController它會工作。然後,每次加載視圖時,請回到委託來設置該屬性。然後在applicationWillResignActive中,將其保存到NSUserDefaults並在應用程序再次變爲活動狀態時檢查值? – geraldWilliam 2012-04-27 23:47:05