检测用户何时点击UINavigationController的左侧按钮

时间:2011-06-21 09:10:16

标签: cocoa-touch uinavigationcontroller

  

可能重复:
  Find out if user pressed the back button in uinavigationcontroller?

当用户点击UINavigationController的左侧按钮(“后退”按钮)时,我想发出声音。

我怎样才能发现这个?

2 个答案:

答案 0 :(得分:3)

UINavigationController有一个委托,每次视图控制器即将被推入视图时(及之后)都会被调用。您可以通过调用它(例如在viewDidLoad中)使视图控制器成为委托:

[[self navigationController] setDelegate:self];

然后在视图控制器中实现方法navigationController:willShowViewController:animated:

答案 1 :(得分:1)

另一种简单的方法是在viewWillDisappear()中实现你的声音:

- (void)viewWillDisappear:(BOOL)animated {

//play my sound here

}

或者更健壮的方法,确保声音仅在按下后退按钮时播放(如果您有其他方式可以从导航堆栈中弹出视图)是UINavigationController的子类并进行自定义操作你的后退按钮的方法。 This page为您提供了如何执行此操作的示例。

该示例基本上是UINavigationController的子类,并覆盖了

- (UIViewController *)popViewControllerAnimated:(BOOL)animated 

按下后退按钮时调用的方法。