可能重复:
Find out if user pressed the back button in uinavigationcontroller?
当用户点击UINavigationController的左侧按钮(“后退”按钮)时,我想发出声音。
我怎样才能发现这个?
答案 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
按下后退按钮时调用的方法。