2013-11-21 4 views
3

У меня есть UITableView, чей источник данных и делегат НЕ обрабатываются контроллером представления, в котором он размещен, но другим классом под названием AbstractInviteFriendsDataSourceDelegate.UISearchBar Исключается при нажатии

Я поставил UISearchBar с UISearchDisplayController в UITableView и вручную (не с помощью интерфейса раскадровки) установить их делегатов и DataSources на контроллер, который обрабатывает DataSource и делегат в UITableView в.

- (id)init 
{ 
    self = [super init]; 
    if (self) { 
     friendsArray = [FriendsToInvite new]; 
     UISearchBar *searchBar = [self.delegate theSearchBar]; 
     searchBar.delegate = self; 
     UISearchDisplayController *searchDisplay = [self.delegate theSearchDisplayController]; 
     searchDisplay.delegate = self; 
     searchDisplay.searchResultsDataSource = self; 
     searchDisplay.searchResultsDelegate = self; 
    } 
    return self; 
} 

Я думаю, что это нормально, потому что, когда я реализовал один из методов делегирования панели поиска, он получил правильное название.

Но теперь, когда я нажимаю на панель поиска, она скользит влево, чтобы освободить место для кнопки отмены, а затем она просто исчезает. Я не реализовал ни один из методов для делегата UISearchBar, ни для делегата UISearchDisplayController и источника данных.

Я попытался реализовать searchBarShouldBeginEditing, чтобы увидеть, будет ли он вызван до того, как панель поиска исчезнет, ​​и да, она вызывается, но после этого метода возвращается строка поиска исчезает.

- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar 
{ 
    return YES; 
} 

EDIT: Я исправил эту проблему, мне кажется, что я имел searchContentController выход из раскадровки. Я вернул его в контроллер вида, который содержит представление таблицы, и теперь все в порядке.

+0

Попробуйте установить ограничения в своем VC. – Slavcho

+0

По какой-то причине, когда я выбираю строку поиска в раскадровке, она не позволяет мне устанавливать ограничения, я не могу выбрать ни одного из них. – damjandd

+0

Я только что сделал образец проекта, поместил UITableView и внутри него я разместил UISearchDisplayController. Все в порядке. Пожалуйста, предоставьте нам больше отзывов или загрузите свой примерный проект, чтобы мы могли рассмотреть эту проблему. – Slavcho

ответ

2

Я также столкнулся с той же проблемой и разрешил добавление строки поиска в виде таблицы таким образом.

Смежные вопросы