按下导航栏中的“后退”按钮时的自定义行为

时间:2011-02-09 02:34:53

标签: iphone ios delegates uitabbarcontroller uinavigationbar

我知道您可以向UINavigationBar添加自定义“后退”按钮,但这样做会删除左侧渐变的现有按钮,如What happens when back button is pressed in navigationBar

中所述

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

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

1 个答案:

答案 0 :(得分:3)

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

  1. 点击按钮( backBarButtonItem 除外)。
  2. 点击 backBarButtonItem
  3. 将调用任何一种情况viewWillDisappear:方法。保留布尔标志。让我们将其命名为 isAnyButtonClicked 。只要点击任何按钮,就设置isAnyButtonClicked = YES。并覆盖viewWillDisappear:方法,如果没有单击按钮(即isAnyButtonClicked == NO)则播放声音。可能你的viewWillDisappear:看起来像,

    - (void)viewWillDisappear:(BOOL)animated {
    
        [super viewWillDisappear:animated];
    
        if (!isAnyButtonClicked) {
    
            // Play sound
            isAnyButtonClicked = NO;
        }
    }