2015-02-12 45 views
4

所以我有一個UITableView填充了問題。此表格的單元格與包含問題答案的另一個視圖具有segue關係。這個segue有一個標識符'showAnswer'。現在我想要在問題表上實現搜索功能,並且我希望結果中的每個單元格也能延伸到答案視圖。從搜索結果中添加一個segue UITableView

的問題表控制器

所以纔有代碼中添加搜索欄及其控制器(順便說一下這斯威夫特但邏輯仍然是相同的):

let resultsController = SearchResultsController() 
    resultsController.questions = questions 
    searchController = UISearchController(searchResultsController: resultsController) 

    let searchBar = searchController.searchBar 
    searchBar.placeholder = "Enter a search term..." 
    searchBar.sizeToFit() 
    questionTable.tableHeaderView = searchBar 
    searchController.searchResultsUpdater = resultsController 

現在在SearchResultsController一次行已被選中我想繼續查看答案。以下是我的了:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
       performSegueWithIdentifier("showAnswer", sender: self) 
      } 

現在這個崩潰,我得到的是「reciever SearchResultsController與標識符的賽格瑞‘錯誤showAnswer’。這是有道理的,但我該如何解決這個問題?由於我以編程方式添加了SearchResultsController,因此我無法在故事板上按Ctrl +拖動以在SearchResultsController和AnswersController之間創建一個segue關係。那麼我該怎麼做?

+0

我面對完全一樣的問題,這個問題改變發送相應的數據 - 你有沒有找到解決辦法?我的設置稍微複雜一些。我的'UISearchController'是模擬地點擊一個搜索按鈕,並且它被安裝在一個'UISplitViewController'的主視圖控制器中...感謝... – 2016-01-03 12:13:33

回答

0

您需要將持續視圖控制器中的segue連接到答案視圖,並從持有視圖控制器而不是搜索控制器執行搜索。

,你也應該在SEGUE的發送參數,因此視圖控制器你導航到可根據所選擇

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    YourViewController.performSegueWithIdentifier("showAnswer", sender: questions[indexPath.row]) 
     }