如何从AppDelegate调用在ViewController中声明的方法

时间:2010-07-21 16:00:21

标签: iphone objective-c

新手问题。我正在构建一个应用程序,我想调用一个我在ViewController中声明的方法 - 来自AppDelegate(在applicationDidBecomeActive上)。

所以基本上,在TestAppDelegate.m我有......

  - (void)applicationDidBecomeActive:(UIApplication
 *)application {
     // I want to call a method called "dothisthing" that I've defined in
 FirstViewController.m
     // This does not work:  [FirstViewController dothisthing] }

在FirstViewController.m我有......

- (void) dothisthing {
   NSLog(@"dothisthing");
}

这是我的第一个iPhone应用程序,所以任何帮助都会受到赞赏。

3 个答案:

答案 0 :(得分:3)

该方法是一个实例方法,因此您需要先创建实例,然后在实例上调用该方法...或者在void

之前将方法声明为静态(+)而不是( - )
FirstViewController* controller = [FirstViewController alloc];

[controller dothisthing]; 

[controller release];

答案 1 :(得分:0)

您还可以在FirstViewController中创建通知,以便在应用程序变为活动状态时调用该方法。

有一个类似的问题,我已经发布了该选项的代码片段

How to refresh UITableView after app comes becomes active again?

答案 2 :(得分:0)

使用这个简单的NSNotificationCenter example。有魅力!