2011-08-28 91 views
1

我iPhone應用程序標籤欄上檢測雙敲具有標籤欄控制器,並且所述突出部中的一個是一個導航控制器。當用戶在選項卡上雙擊時,會導致導航控制器彈回到根視圖。彈出導航控制器返回到根視圖

我的問題是,一些在我的導航層次的看法都有與該視圖相關聯的navigationItem特定欄按鈕。所以我以編程方式根據推送到navigationController的視圖來設置rightBarButtonItem。當發生雙擊時,它會彈回到根視圖,但不會彈出到右側按鈕。該按鈕似乎與彈出的最後一個視圖具有相同的特定按鈕。

所以我有一個欄按鈕與另一種觀點去根視圖不匹配。

有沒有辦法檢測雙擊操作何時發生?在這種情況下,我可以將導航欄上的按鈕重置爲正確的按鈕。我試圖在viewWillAppear/viewDidAppear/viewDidLoad方法中做這件事,但當標籤欄雙擊發生時,這些似乎不會被調用。

+0

http://www.iphonedevsdk.com/forum/iphone-sdk-development/1183-double-touche-click.html –

+0

我並不想檢測雙擊一個常規按鈕 - 這是在標籤欄控制器選項卡上的雙擊(不是視圖本身的任何東西) – bobfet1

回答

1

確保您總是擁有與視圖顯示方式無關的正確按鈕(例如,通過彈出子視圖控制器或雙擊標籤欄)的最安全方法是每次都設置按鈕視圖變得可見。因此,在你的根視圖控制器:

-(void)viewWillAppear { 
    //check button, change if desired 
} 
+1

謝謝 - 這使我走上了正確的軌道。起初,我認爲我的viewWillAppear方法沒有被調用,但事實證明,如果你在導航控制器上使用initWithRootViewController方法,那就是視圖控制器,它將在雙擊標籤欄時調用viewWillAppear方法。但我的問題是,popToRootViewController方法也會返回到一些較舊版本的iOS中的錯誤navigationItem,如下所述:http://stackoverflow.com/questions/5902164/uinavigationitem-out-of-sync-when-using -poptorootviewcontroller – bobfet1

相關問題