【发布时间】:2011-03-13 16:12:45
【问题描述】:
我想为 applicationDidBecomeActive 使用 appdelegate,并且我希望这个函数使用放置在 viewcontroller 中的方法。我要怎么做? 我发现的唯一事情是从 appdelegate 的任何地方访问。
【问题讨论】:
标签: iphone function sdk uiviewcontroller
我想为 applicationDidBecomeActive 使用 appdelegate,并且我希望这个函数使用放置在 viewcontroller 中的方法。我要怎么做? 我发现的唯一事情是从 appdelegate 的任何地方访问。
【问题讨论】:
标签: iphone function sdk uiviewcontroller
您需要为您的 applicationDelegate 类提供对要调用该方法的 viewController 的引用。您可以通过创建一个实例变量或 applicationDelegate 的属性来执行此操作,该属性指向您希望能够调用该方法的 viewController。如果您在 appDelegate 的 init 方法或 applicationDidLoad: 方法中创建 viewController,那么您可以简单地将这个 viewController 分配给您的实例变量/属性已创建。
【讨论】:
您可以通过 window 属性,即self.window.rootViewController,从应用程序委托中访问应用程序的根视图控制器。您要访问的视图控制器必须是根视图控制器的子级或至少可以通过它访问。
【讨论】:
我遇到了同样的问题,需要从应用委托调用我的视图控制器上的方法。经过一番挖掘和阅读这个答案后,我尝试直接从应用程序委托在我的视图控制器中调用一个方法(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];
}
希望这会有所帮助。
【讨论】: