在ViewController更改之前执行任务的最佳方法

时间:2013-05-03 00:17:57

标签: ios objective-c uiviewcontroller

UIViewController的某些阶段全局执行给定块的最佳方法是什么,特别是在视图控制器从视图中被隐藏(被解除,另一个视图控制器被推送等)之前?

1 个答案:

答案 0 :(得分:0)

只需覆盖内置通知:

- (void)viewWillDisappear:(BOOL)animated
{
  [super viewWillDisappear:animated];

  // Do what you need to do

}

另见other notifications

– viewWillAppear:
– viewDidAppear:
– viewWillDisappear:
– viewDidDisappear:
– viewWillLayoutSubviews
– viewDidLayoutSubviews

更新:如果您需要为应用中的所有UIViewControllers执行此操作,您可以选择

  1. 创建一个自定义类并拥有所有ViewControllers 继承自您的自定义类
  2. 方法Swizzling(类似示例here
  3. 子类化可能是最好的,但如果由于任何原因这是不切实际的,我会研究方法调整。