2011-02-22 27 views
1

我正在使用詳細視圖中具有導航控制器的拆分視圖的iPad應用程序中工作。可以在導航堆棧中的最深的視圖是用戶可以編輯數據的編輯視圖。我把一個編輯按鈕作爲rightBarButtonItem,當編輯開始時,將它改爲完成按鈕。如何將導航欄的「完成」按鈕添加到彈出窗口的passthroughViews?

當編輯開始並且用戶觸及某個特定字段時,我提供了一個popoverview,其中列出了可能的選擇列表,並根據它們正在輸入的內容進行過濾 - 基於所有其他對象中該字段所有值的自動填充形式。

這工作正常,除非你嘗試觸摸完成按鈕。流行病吃了這個觸摸並且自行解散。所以用戶必須再次觸摸完成。

我嘗試使用uipopovercontroller的passthroughViews屬性,但UIBarButtonItem不是視圖,也沒有記錄的方式來獲取完成按鈕甚至導航欄的視圖。我可以訪問gdb中的變量,但不能通過KVC訪問。

關於如何防止需要點擊兩次的任何想法?

我想過在窗口上的手勢識別器,但這似乎凌亂,我不得不處理旋轉。

回答

1

萬一有人送過來,從谷歌,其他的問題copypaste:

我發現現在唯一的解決方案是與創建自定義的UIBarButtonItem的UIButton使用

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
//code for styling button 

UIBarButtonItem *b = [[[UIBarButtonItem alloc] 
             initWithCustomView:button] 
             autorelease] 

然後

popoverController.passthroughViews = [NSArray arrayWithObject:b.customView]; 

但要做好準備 - 您不能創建看起來像UIBarButtoItem的UIButton。我最終創建了重新組裝UIBarButtonItem的圖像。

相關問題