如何从我的应用程序委托创建对我的视图控制器的引用?

时间:2011-01-20 00:56:43

标签: iphone objective-c cocoa-touch iphone-sdk-3.0 ios4

您好我想知道,如何从我的应用代表创建对我的一个视图控制器的引用?当我的应用程序进入前台时,我想从代理调用一个特定的方法(我的视图控制器)。

3 个答案:

答案 0 :(得分:3)

  1. 在* AppDelegate中创建同一类的成员ivar指针,在启动时将其设置为nil,将其属性设置为“assign”。
  2. 当在内存中创建并加载特定视图控制器时,在此控制器的viewDidLoad方法中:

    [[[UIApplication sharedApplication] delegate] setThatSpecialContrller:self];

  3. 当必须在某个时候取消分配此控制器时,您使用类似的代码行再次将指针设置为nil。

  4. 每次你的应用程序从后台到前台进行检查,如果指针不是nil,请使用这个not-nil引用来调用你的特定控制器及其方法。

答案 1 :(得分:1)

diwup提到的替代方法很好,很快在this教程中的“用右手勾住左边”一节中进行了描述。

答案 2 :(得分:1)

或者,您可以收听UIApplicationWillEnterForegroundNotification通知。

- (void)viewDidLoad {
    NSNotificationCenter *defaultCenter = [NSNotificationCenter defaultCenter];
    [defaultCenter addObserver:self selector:@selector(applicationWillEnterForeground:) UIApplicationWillEnterForegroundNotification object:nil];
}

- (void)viewDidUnload {
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}