2015-02-12 4 views
4

Итак, у меня есть UITableView, заполненный вопросами. Ячейки этой таблицы имеют отношение segue к другому представлению, которое содержит ответ на вопрос. Этот segue имеет идентификатор 'showAnswer'. Теперь я хочу реализовать функцию поиска в таблице вопросов, и я хочу, чтобы каждая ячейка в результатах также переходила к просмотру ответов.Добавление segue из результатов поиска UITableView

Так в контроллере вопрос таблицы есть код, чтобы добавить строку поиска и ее контроллера (это Swift, кстати, но логика все та же):

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) 
      } 

Сейчас этот сбой, и я получаю ошибку, что «приемник SearchResultsController не имеет SEGUE с идентификатором 'showAnswer. Это имеет смысл, но как я могу это исправить? Поскольку я программным программным обеспечением SearchResultsController я добавил программно, для меня нет ничего, чтобы ctrl + перетащить на раскадровку, чтобы создать взаимосвязь segue между SearchResultsController и AnswersController. Итак, что мне делать?

+0

Я столкнулся точно с такой же проблемой - Вы нашли решение? Моя настройка немного сложнее. Мой 'UISearchController' представлен модально, нажав кнопку поиска, и он установлен в контроллере главного представления' UISplitViewController' ... Спасибо ... –

ответ

0

Вам необходимо подключить segue из контроллера просмотра холдинга к виду ответов и выполнить сеанс из контроллера представления холдинга вместо контроллера поиска.

вы также должны послать соответствующие данные в отправителе аргумента Segue так контроллера представления вы перемещаетесь к может меняться в зависимости от вопроса, который был выбран

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