viewWillAppear、viewDidAppear、viewWillDisappear、viewDidDisappear的指南

20
有没有关于如何正确使用这些方法的指导方针?特别是我想知道在它们内部可以使用哪种类型的代码。
例如,如果我需要调用一个从网络服务获取数据的方法,我应该在哪里进行调用?在哪里可以注册/注销NSNotification通知?等等。
2个回答

31

来自UIViewController

viewWillAppear:

在接收器的视图即将显示在屏幕上并且在为显示该视图配置任何动画之前调用此方法。 您可以重写此方法以执行与呈现视图相关的自定义任务。 例如,您可能会使用此方法更改状态栏的方向或样式,以与要呈现的视图的方向或样式协调。 如果覆盖此方法,则必须在实现中某个时刻调用super。

viewWillDisappear:

响应从窗口中移除或被其他视图覆盖的视图时调用此方法。 此方法在实际删除或覆盖视图之前并且在配置任何动画之前调用。

子类可以重写此方法并使用它来提交编辑更改、放弃视图的第一个响应者状态或执行其他相关任务。 例如,当首次呈现视图时,在viewDidDisappear:方法中更改状态栏的方向或样式后,您可能会使用此方法还原这些更改。 如果覆盖此方法,则必须在实现中某个时刻调用super。

viewDidAppear:

您可以重写此方法以执行与呈现视图相关的其他任务。 如果覆盖此方法,则必须在实现中某个时刻调用super。

viewDidDisappear:

您可以重写此方法以执行与解除或隐藏视图相关的其他任务。 如果覆盖此方法,则必须在实现中某个时刻调用super。

更多信息请查看iOS视图控制器编程指南


4

补充一下答案:在你的实现开始时应该调用像super viewWillAppear:这样的方法,并在方法结束时调用viewDidAppear:。超类应该从初始化开始,最后才终止。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接