何时/为何/如何使用UINavigationControllerDelegate协议实例方法?

时间:2010-08-30 01:56:03

标签: iphone uiviewcontroller uinavigationcontroller

何时/为何/如何使用这些方法?

- navigationController:willShowViewController:animated:
– navigationController:didShowViewController:animated:

您不能只使用这些UIViewController实例方法吗?

– viewWillAppear:
– viewDidAppear:
– viewWillDisappear:
– viewDidDisappear:

2 个答案:

答案 0 :(得分:16)

如果您希望了解外部可见视图控制器的事件,则可以使用前面的那些事件。代表允许您在一个点上获得通知。使用UIViewController的方法在这些控制器中绑定您,您必须多次编写/调用相同的代码才能实现相同的目标。

通常,您将任务划分为这两组:

  • 所有视图控制器中发生的事情:使用委托
  • 单个视图控制器中发生的事情:使用实例方法

答案 1 :(得分:1)

  

UINavigationControllerDelegate协议定义了导航控制器委托可以实现的方法,以便在从导航控制器的堆栈中推送和弹出视图控制器时更改行为。

当您需要执行某些不在视图控制器范围内的操作时,这些方法很重要。委托它应该是层次结构上视图控制器的前任对象,并且有兴趣在不知道每个被推送或弹出的视图控制器的情况下执行某些操作,这些操作不一定与该视图控制器具体相关,但它们可以是在其他对象上调用的方法。