2011-02-09 123 views
3

我知道,你可以自定义的“后退”按钮添加到UINavigationBar的,但这样做删除与锥左侧的现有按钮,在What happens when back button is pressed in navigationBar自定义行为时,“背”,在导航栏按钮按下

描述

有没有办法保持现有的行为和后退按钮的外观,但是当按下按钮时也会被通知?

基本上,我希望我的应用在任何按钮被触摸时播放声音。我可以通过它的委托与UITabBarController来完成,但UINavgationBarController的委托没有这样的功能。

+0

我的猜测,将是视图控制器的viewWillDisappear:或viewDidDisappear:工作? – 2011-02-09 02:38:30

+0

你可以在后退按钮顶部的透明按钮,然后将其发送到 – blindjesse 2011-02-09 03:02:20

回答

3

以下是视图控制器消失的可能性。

  1. 点击一个按钮(除了backBarButtonItem)。
  2. 点击backBarButtonItem

两种情况viewWillDisappear:方法将被调用。保留布尔标志。让我们命名它isAnyButtonClicked。并且每当任何按钮被点击时设置isAnyButtonClicked = YES。并覆盖viewWillDisappear:方法,并在没有按钮被点击的情况下播放声音(即,isAnyButtonClicked == NO)。也许你viewWillDisappear:会是什么样子,

- (void)viewWillDisappear:(BOOL)animated { 

    [super viewWillDisappear:animated]; 

    if (!isAnyButtonClicked) { 

     // Play sound 
     isAnyButtonClicked = NO; 
    } 
}