Re: [問題] UISearchDisplayDelegate

看板MacDev作者 (狗狗)時間11年前 (2012/09/14 00:47), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/4 (看更多)
※ 引述《NelsonT (新竹好無聊)》之銘言: : : ============= : : 自問自答 again: : : 後來發現到問題了 原本 : : self.searchDisplayController.searchResultsTableView.delegate = : : searchDelegate; : : self.searchDisplayController.searchResultsTableView.dataSource = : : searchDelegate; : : 這兩行 要改成 : : self.searchDisplayController.searchResultsDelegate = self.searchDelegate; : : self.searchDisplayController.searchResultsDataSource = self.searchDelegate; : : 原因是取消了searchBar的搜尋之後,下一次再進來searchBar時 : : searchResultsTableView已經不是同一個tableView了 (雖然之前的tableView也還存在) : : 所以第二次進行search時 searchResultsTableView的delegate/dataSource已經換了 : 這樣聽起來還是不太對, : 你這是在 viewDidLoad 時設定的,但每次 searchResultsTableView 都不同, : 而 viewDidLoad 只被呼叫一次,這樣怎麼會有效呢? : 要不要試試看寫在這個方法裡 : searchDisplayController:didLoadSearchResultsTableView : 我沒試過,不確定是否有效。 我的方法是有效的 UISearchDisplayController的searchResultsDataSource和searchResultsDelegate 會在每次searchResultsTableView實體化在 幫忙設定DataSource和Delegate 所以不要直接對searchResultsTableView設定DataSource和Delegate 因為searchResultsTableView實體物件可以會被變更... 我沒有實際去print 前後兩個searchResultsTableView的實體位址是否是同一個 也有可能是前後的searchResultsTableView都是一樣 而在searchResultsTableView 的-ViewWillAppear時 重新assign一次searchDisplayController的DataSource和Delegate 給searchResultsTableView Anyway,就是不要assign searchResultsTableView的DataSource和Delegate 而是 searchDisplayController的searchResultsDataSource和searchResultsDelegate -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.198.45.233 ※ 編輯: leondemon 來自: 60.198.45.233 (09/14 00:51)
文章代碼(AID): #1GKWuPtv (MacDev)
討論串 (同標題文章)
文章代碼(AID): #1GKWuPtv (MacDev)