UIView上是否有覆盖,以了解它何时实际显示在屏幕上?

UIView上是否有覆盖,以了解它何时实际显示在屏幕上?,uiview,ios4,event-handling,xamarin.ios,Uiview,Ios4,Event Handling,Xamarin.ios,UIView(或UIWindow)是否有方法重写当视图(或窗口)首次显示在屏幕上时将调用的方法 注意:我在这个应用程序中没有UIViewController,如果可能的话,我希望保持这种方式 这类似于在WPF窗口上注册激活的事件 在采取行动之前,我需要知道视图何时实际显示在屏幕上 此外,在具有多任务功能的iOS 4上,是否有一个覆盖,用于在“重新启动”时获取通知,以便您可以在第一次显示视图和在多任务切换中再次显示视图时了解差异 MonoTouch C#或Objective-C示例/答案可以。当屏

UIView(或UIWindow)是否有方法重写当视图(或窗口)首次显示在屏幕上时将调用的方法


注意:我在这个应用程序中没有UIViewController,如果可能的话,我希望保持这种方式

这类似于在WPF窗口上注册激活的事件

在采取行动之前,我需要知道视图何时实际显示在屏幕上

此外,在具有多任务功能的iOS 4上,是否有一个覆盖,用于在“重新启动”时获取通知,以便您可以在第一次显示视图和在多任务切换中再次显示视图时了解差异


MonoTouch C#或Objective-C示例/答案可以。

当屏幕上显示视图时,
UIViewController
中的override
public override void ViewDidDisplay(布尔动画)
将显示


通过多任务处理,应用程序委托中有一个覆盖:
public override void WillEnterForeground(UIApplication应用程序)
您可以通过UIView可以订阅的iOS通知中心触发事件(C#)或发送通知,告诉他们应用程序已从后台恢复

我没有UIViewController。我只有一个UIWindow,其中有一个UIView作为子视图。这是一个相当简单的程序,不需要视图控制器,因为屏幕上没有小部件。我想我的问题会更具体一些。看起来奇怪的是,控制器将是获取此事件的人,而不是视图本身。如果没有其他方法可以使用UIViewController,那么就这样吧,但我觉得我被迫向我非常简单的应用程序添加不需要的层,并被迫进入MVC,即使你没有小部件,这意味着我没有操作或出口。如果我没有看到一个非UIViewController的方法可以很快做到这一点,我会将此标记为答案。因为我担心你的答案是唯一的解决方法。我仍然建议使用
UIViewController
——有几个原因。您将获得这些关于
UIView
状态的有用覆盖(还有一些其他有用的覆盖!);此外,如果将来应用程序变得更加复杂,iOS中的大多数导航工具都使用
UIViewControllers
。谢谢。这只是偶尔让我感到厌烦的苹果产品之一,我觉得“被迫”去做一些我不该做的事情。我的意思是为什么一个对象的状态应该由另一个对象管理?让MVC变得容易是一回事,把它塞进你的喉咙又是另一回事不管怎样,谢谢你给我指出我需要去的地方。