2011-02-09 124 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; 
    } 
}