Как создать ссылку на один из моих контроллеров представления из моего делегата приложения? - PullRequest
0 голосов
/ 20 января 2011

Привет, мне было интересно, как я могу создать ссылку на один из моих контроллеров представления из моего делегата приложения? Я хотел бы вызвать определенный метод (моего контроллера представления) из делегата, когда мое приложение выходит на передний план.

Ответы [ 3 ]

3 голосов
/ 20 января 2011
  1. Создайте указатель члена класса ivar того же класса в вашем * AppDelegate, установите его равным nil при запуске, установите его свойство равным «assign».
  2. Когда определенный контроллер представления создается и загружается в память, в методе viewDidLoad этого контроллера:

    [[[UApplication sharedApplication] делегат] setThatSpecialContrller: self];

  3. Когда этот контроллер должен быть освобожден в какой-то момент, вы используете аналогичную строку кода, чтобы снова установить указатель на ноль.

  4. Проверяйте каждый раз, когда ваше приложение выходит из фона на передний план, если указатель не ноль, используйте эту ссылку не ноль, чтобы вызвать ваш конкретный контроллер и его метод.
1 голос
/ 20 января 2011

Кроме того, вы можете прослушать уведомление UIApplicationWillEnterForegroundNotification.

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

- (void)viewDidUnload {
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}
1 голос
/ 20 января 2011

Альтернативный подход, о котором упоминалось в diwup, красиво и кратко описан в разделе «Соединение левого с правым» в этом руководстве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...