Monotouch: контроллер выведен на передний план - Уведомление? - PullRequest
4 голосов
/ 31 марта 2011

MonoTouch

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

Есть ли событие или переопределение, которое я могу использовать, чтобы определить, что представление было выведено на передний план.

Я нашел «WillEnterForegroundNotification», но это строка, поэтому я не уверен, как он используется.

Ответы [ 2 ]

8 голосов
/ 31 марта 2011

Я нашел это:

Поместите это в CTOR ViewController:

NSNotificationCenter.DefaultCenter.AddObserver (UIApplication.WillEnterForegroundNotification, 
    EnterForeground); 

Затем создайте этот метод для обработки события в контроллере представления.

void EnterForeground (NSNotification notification)
{
    Console.WriteLine("EnterForeground: " + notification.Name); 
}

Примечание. Когда ваше приложение выводится на передний план, UIApplicationDelegate будет поднимать этот вопрос первым, что является хорошим местом для очистки таких вещей, как данные для входа и проверки, связанные с безопасностью.

public override void WillEnterForeground (UIApplication application)
0 голосов
/ 15 ноября 2012

В моем приложении MonoTouch у меня есть кнопка «Добавить», которая после однократного нажатия отключается до конца дня.Чтобы проверить и включить кнопку, когда приложение становится активным, я отслеживаю UIApplication.Notifications.ObserveDidBecomeActive в конструкторе ViewController.

NSObject _didBecomeActiveNotification;
.
.
.
// and in constructor
_didBecomeActiveNotification = UIApplication.Notifications.ObserveDidBecomeActive((sender, args) => {
    SetRightBarButtonState();
});

Затем я перезаписываю метод Dispose в ViewController через

protected override void Dispose (bool disposing) {
    if (disposing) {
        _didBecomeActiveNotification.Dispose();
    }
    base.Dispose (disposing);
}
...