我想将appdelegate用于applicationDidBecomeActive,我希望这个函数使用放在viewcontroller中的方法。我该怎么做? 我发现的唯一一件事就是从appdelegate的任何地方访问。
答案 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];
}
希望这有帮助。