2014-10-29 112 views
5

我添加了一個搜索欄搜索&顯示控制器(假設這就是我在故事板上添加,因爲他們沒有「SearchController」對象拖出)引用一個UISearchController。你如何用故事板

我的問題是我怎麼對SearchController現在設置的屬性? self.searchController不起作用,Xcode說,當我將UISearchBar添加到視圖時,它會自動添加。我究竟做錯了什麼?我需要訪問它的原因是這樣我就可以設置搜索結果表,就像這樣:

UITableViewController *searchResultsController = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain]; 
searchResultsController.tableView.dataSource = self; 
searchResultsController.tableView.delegate = self; 

self.searchController = [[UISearchController alloc] initWithSearchResultsController:searchResultsController]; 

self.searchController.searchResultsUpdater = self; 

我注意到這裏的例子:https://github.com/dempseyatgithub/Sample-UISearchController

它說,它使用故事板,實際上並未使用情節串連圖板添加UISearchController,但通過分配和初始化並設置框架來使用代碼。

+0

感謝老闆,如果你想要把這個作爲答案,我會欣然接受。 – James 2014-10-29 20:04:38

回答

-5

當您將搜索欄和搜索顯示控制器對象出到你的表視圖,一個IBOutlet稱爲searchDisplayController會自動添加到您的控制器,而不是一個叫searchController。它還爲您設置數據源和委託。

+4

正如下面的回答說,UISearchDisplayController是贊成UISearchController,這是不是在故事板直接可用的棄用。 – 2015-03-03 10:37:44

19

重要:UISearchDisplayController在iOS的8棄用(請注意,UISearchDisplayDelegate也已經過時。)要管理的iOS 8搜索欄和顯示搜索結果的呈現,後來,改用UISearchController。

正如官方文檔中提到的,最好是停止將舊式UISearchDisplayController添加到定位iOS 8.0+的應用程序。但似乎他們沒有從Xcode6.1的UI控制器庫中刪除舊的。他們還沒有添加新的UISearchController。讓我們等待下一個補丁。

但你仍然可以通過代碼添加新的一個:

_searchController=[[UISearchController alloc] initWithSearchResultsController:self]; 
+3

仍然在等待....感謝讓我們在蘋果中冷靜! – staxim 2015-04-21 19:46:23

+0

@staxim很抱歉聽到這個消息。幾個月沒有碰到iOS或Xcode。本週晚些時候我會做一些調查。 – 2015-04-22 21:48:24

+4

和9個月後.. UISearchController仍然不在故事板視圖。 :( – 2015-08-18 08:08:29