2010-01-06 67 views
2

我在UINavigationController中有一個普通的UITableViewController。前者包括一個連接到搜索顯示控制器的搜索欄。我使用標準行爲,即當用戶輸入任何字符時,搜索結果表格視圖覆蓋普通表格視圖。UINavigationController邏輯內searchDisplayController.searchResultsTableView行爲

現在,兩個表視圖都在導航控制器內部起作用。如果我從搜索結果表格視圖中選擇一個項目,則會將新的uitableviewcontroller(包含有關所選項目的特定信息)壓入導航堆棧。當我按下該控制器上的後退按鈕時,我觀察到一種奇怪的行爲:普通表格視圖的部分標題透支了我的搜索結果表格視圖的部分標題。它們顯示爲正常顯示正常的表格視圖(我可以看到,從標題之間的行數,儘管行仍然是空的)。搜索結果表格行仍在顯示。

此行爲來自於我在viewWillAppear上重新加載表視圖的事實。我這樣做是爲了對應用程序中某些其他位置或自動後臺數據更新中的數據庫更改作出反應。我已經嘗試過輪詢如果正在通過

(self.tableView == self.searchDisplayController.searchResultsTableView) 

顯示最近顯示的表視圖,但這種說法是假的總是在我回到我正常的表視圖控制器。

問題:如何輪詢我的表視圖的正確狀態以避免顯示錯誤?

回答

11

UISearchDisplayController類實現active屬性。猜猜它用於:-)

例如只需檢查(self.searchDisplayController.active)([self.searchDisplayController isActive])

+0

我一定忽略了那個屬性......非常感謝你! – ff10 2010-01-07 11:05:44

+0

幫助我也...謝謝! – user777304 2013-03-12 03:44:32