我想在iOS中输入前台时打电话

时间:2014-02-20 08:29:04

标签: ios foreground

我只有GalleryViewController UIViewController 它是由故事板加载的。

我想在GalleryViewController中调用AppDelegate.m的方法 但我在GalleryViewController中没有引用AppDelegate.m

2 个答案:

答案 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通知的观察者。