来自appdelegate的viewcontroller中的访问方法

时间:2011-03-13 16:12:45

标签: iphone function sdk uiviewcontroller

我想将appdelegate用于applicationDidBecomeActive,我希望这个函数使用放在viewcontroller中的方法。我该怎么做? 我发现的唯一一件事就是从appdelegate的任何地方访问。

3 个答案:

答案 0 :(得分:3)

您需要为 applicationDelegate 类提供对要调用方法的 viewController 的引用。您可以通过创建实例变量或 applicationDelegate 的属性来指向您希望能够调用该方法的 viewController 。如果您在 appDelegate 的init方法或applicationDidLoad:方法中创建viewController,那么您只需将此 viewController 分配给实例变量/属性你创造的。

答案 1 :(得分:2)

您可以通过窗口属性self.window.rootViewController从应用委托中访问应用的根视图控制器。您要访问的视图控制器必须是根视图控制器的子视图,或者至少可以通过它访问它。

答案 2 :(得分:0)

我有同样的问题需要从app delegate调用我的视图控制器上的方法。经过一些挖掘和阅读这个答案,我试图直接从应用程序委托调用我的视图控制器中的方法(saveData是有问题的方法),它按需要工作。

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {[self.window addSubview:rootViewController_iPad.view];
    [self.window makeKeyAndVisible];

    return YES;
}


        -(void)applicationWillResignActive:(UIApplication *)application {
        [rootViewController_iPad saveData];
    }

希望这有帮助。