我只有GalleryViewController
UIViewController
它是由故事板加载的。
我想在GalleryViewController
中调用AppDelegate.m
的方法
但我在GalleryViewController
中没有引用AppDelegate.m
。
答案 0 :(得分:2)
- (void)applicationWillEnterForeground:(UIApplication *)application
{
UIViewController *galleryViewController = self.window.rootViewController;
[galleryViewController doSomething];
}
编辑:这只是一个如何获得对GalleryViewController的引用的示例,如果它是您的rootViewController。如果你在NavigationController或TabBarController中,那么你需要首先获得对navigationController或tabBarController的引用,然后级联它的viewControllers。
如果你有一个复杂的VC结构,可能更容易订阅Wain指出的通知。信用应该是他更快的回应。
答案 1 :(得分:1)
您可以从应用程序委托中的window
获取对根视图控制器的引用,然后转换或导航所需的控制器(如果它位于导航控制器中)。
您不需要将此关系/知识添加到app委托,但控制器可以将自己添加为UIApplicationWillEnterForegroundNotification
通知的观察者。