2010-08-07 51 views
0

這是一個後續到這樣一個問題: UINavigationController + UITableView + UISearchBar + UISplitViewController的UISearchBar +的UITableView UINavigationController的+問題

有什麼辦法讓它儘量上面的解決方案不會使其不過濾的結果?在我的情況下,當你停用viewWillDisappear中的搜索時,你會看到整個列表彈出備份(在動畫期間),如果你在viewDidDisappear中執行搜索,那麼它看起來太晚了,下一個視圖再次位於酒吧。其他解決方案?

+0

那麼這裏有很多因素。你如何構建搜索?你如何處理搜索結果?你對didSelectRowAtIndexPath方法做了什麼特別的事情?請張貼一些代碼(前一個幫助中的屏幕截圖,但不提供足夠的信息)。 – MishieMoo 2010-09-15 20:06:43

回答

0

我結束了在搜索欄中出現了改變這種固定(而不是去在導航欄上,其綁在表像電子郵件收件箱)。這解決了問題並使其看起來更像蘋果應用程序。

0

OK,我有你的答案 -

這裏是爲我工作的步驟[含有一些僞]:

1)既然你正在尋找你肯定已經覆蓋ShouldReloadForSearch - 所以,只需添加一塊保存/存儲forSeachString的代碼即可。

2)這可能會有所不同,取決於您的應用程序 - 但這一步的要點是,如果沒有搜索結果加載,您需要清除存儲的搜索字符串[設置爲空]。我在我的UITableViewSource中做了這個。我有2個構造函數 - 一個用於整個數據集,另一個用於篩選的[搜索結果]數據集。所以我在我的完整數據集構造函數中將其設置爲null。是的,你可以以不同的方式做到這一點,但這就是我做到的。

3)接下來,按原來的「答案」狀態,並打電話給SetActive - [self.searchDisplayController setActive:NO];。他們主張通過覆蓋ViewDidAppear來做到這一點。我沒有那樣做......我在我的RowSelected覆蓋中推入下一個UIViewController後立即執行此操作。 4)最後,在UISearchDisplayController附件的UIViewController中檢查你保存的搜索字符串,如果它存在,然後執行以下操作:1)再次調用SetActive,但這次使用真實參數,例如setActive:YES ...然後2)將searchBar文本設置爲您保存的搜索字符串值。我在ViewWillAppear覆蓋中做了這個。

長話短說...這工作對我來說,它維護搜索結果。在步驟4中設置searchBar文本是關鍵......這有效地讓過濾器保持。

希望這可以幫助別人