У меня есть 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
выход из раскадровки. Я вернул его в контроллер вида, который содержит представление таблицы, и теперь все в порядке.
Попробуйте установить ограничения в своем VC. – Slavcho
По какой-то причине, когда я выбираю строку поиска в раскадровке, она не позволяет мне устанавливать ограничения, я не могу выбрать ни одного из них. – damjandd
Я только что сделал образец проекта, поместил UITableView и внутри него я разместил UISearchDisplayController. Все в порядке. Пожалуйста, предоставьте нам больше отзывов или загрузите свой примерный проект, чтобы мы могли рассмотреть эту проблему. – Slavcho