[問題] SearchBar在UIView裏顯示result table
語法是Swift
目的是:在一個地圖MapView (UIViewController)
上放一個有search(display)controller處理的searchbar
iOS8新的機制UISearchController下
我在mapview的controller可以宣告一個新UISearchController
指定他的searchResultsController與searchResultsDelegate
為一個我另外寫的UITableViewController Class
在那裡面處理search result的事件跟資料
藉由SearchController本身的searchBar變數就可把搜尋框加到MapView
(也就是UIViewController)
開始在上面打字 畫面就會有切換到table view的動畫
原本的uivew會被這個tableview蓋掉 一切都很完美
code重點如下
(在主UIViewController中)
let src = AutoCompleteController() //AutoCompleteController是
//TableViewController
......
searcher = UISearchController(searchResultsController: src)
searcher.searchResultsUpdater = src
searcher.searchBar.delegate = self
searchBarView.addSubview(searcher.searchBar)
searcher.searchBar.sizeToFit()
//searchBar的delegate是在UIViewController上
//ResultsUpdater跟ResultsController都是另外拉的AutoCompleteController
//並且相關的tableview處理動作也寫好在AutoComplet....
然後小弟想要做IOS7的backward compatibility
所以回頭研究如何用UISearchDisplayController去實作一樣的功能
(我是SWIFT新手IOS8才開始學的XD)
但是感覺沒那麼簡單
先參考http://www.raywenderlich.com/76519/add-table-view-search-swift
的範例
然後在UIViewController也是一樣宣告一個跟範例一樣的TableViewController Class
在這裡叫src2 但是是實作UISearchDisplayController功能的
main UIViewController裡換成這樣
let searchBar = UISearchBar()
searchBar.delegate = self
let searcher2 = UISearchDisplayController(searchBar: searchBar,
contentsController: src2)
searcher2.searchResultsDataSource = src2
searcher2.searchResultsDelegate = src2
searchBarView.addSubview(searcher2.searchBar)
searcher2.searchBar.sizeToFit()
searchDisplayController應該設的DataSource跟Delegate都有給src2
但是在這個searchBar上打字
動畫跟tableview都沒有出來過 沒有動靜
不知道是不是我使用SearchDisplayController的觀念有問題
因為網路上教學的範例幾乎都是searchBar在TableViewController裏的
並沒有searchBar在普通的UIView裏 然後開始輸入就會出現tableview蓋掉畫面的
我覺得ios8 SearchController只是被我剛好瞎矇試成功的
架構兩者好像不太一樣
我相信是做得到的 因為ios版的google map 跟很多app都有看到這種效果
(searchBar放在非tableview的uiview中 點了才有搜尋結果tableview動畫)
希望有前輩們可以指點
感恩感恩
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.163.208.119
※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1430749250.A.97A.html
推
05/05 13:35, , 1F
05/05 13:35, 1F
推
05/05 14:49, , 2F
05/05 14:49, 2F
→
05/05 14:50, , 3F
05/05 14:50, 3F
→
05/05 14:51, , 4F
05/05 14:51, 4F
→
05/06 12:04, , 5F
05/06 12:04, 5F
→
05/06 12:04, , 6F
05/06 12:04, 6F
→
05/06 12:05, , 7F
05/06 12:05, 7F
→
05/06 12:05, , 8F
05/06 12:05, 8F
→
05/06 12:06, , 9F
05/06 12:06, 9F
→
05/06 12:08, , 10F
05/06 12:08, 10F
→
05/06 12:43, , 11F
05/06 12:43, 11F
→
05/06 12:44, , 12F
05/06 12:44, 12F
→
05/06 12:45, , 13F
05/06 12:45, 13F
→
05/06 12:45, , 14F
05/06 12:45, 14F
→
05/06 12:46, , 15F
05/06 12:46, 15F
→
05/06 12:49, , 16F
05/06 12:49, 16F
→
05/06 12:49, , 17F
05/06 12:49, 17F
→
05/06 12:51, , 18F
05/06 12:51, 18F
→
05/06 12:53, , 19F
05/06 12:53, 19F
→
05/06 12:55, , 20F
05/06 12:55, 20F
→
05/06 12:56, , 21F
05/06 12:56, 21F
→
05/06 13:43, , 22F
05/06 13:43, 22F
→
05/06 13:43, , 23F
05/06 13:43, 23F
→
05/06 13:44, , 24F
05/06 13:44, 24F
→
05/06 13:45, , 25F
05/06 13:45, 25F
→
05/06 13:45, , 26F
05/06 13:45, 26F
→
05/06 13:46, , 27F
05/06 13:46, 27F
→
05/06 14:22, , 28F
05/06 14:22, 28F