Monotouch:控制器带到前台 - 通知?

时间:2011-03-31 07:08:52

标签: notifications xamarin.ios foreground

MonoTouch的

当应用程序返回到前台时,我需要处于活动状态的ViewController来了解这一点。

是否有可用于确定视图被带到前台的事件或覆盖。

我确实找到了“WillEnterForegroundNotification”,但它是一个String,所以我不确定它是如何使用的。

2 个答案:

答案 0 :(得分:8)

我发现了这个:

将它放在ViewController的CTOR中:

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

然后创建此方法以在视图控制器中处理事件。

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

注意:当您的应用程序被带到前台时,UIApplicationDelegate将首先获得此项,这是清除登录详细信息和安全相关检查等内容的好地方。

public override void WillEnterForeground (UIApplication application)

答案 1 :(得分:0)

在我的MonoTouch应用程序中,我有一个“添加”按钮,一旦被点击,然后在当天的剩余时间内被禁用。要在应用程序变为活动状态时检查并启用该按钮,请在ViewController的构造函数中监视UIApplication.Notifications.ObserveDidBecomeActive

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

然后我通过

覆盖ViewController中的Dispose方法
protected override void Dispose (bool disposing) {
    if (disposing) {
        _didBecomeActiveNotification.Dispose();
    }
    base.Dispose (disposing);
}