Я не уверен, используете ли вы searchDisplayController или просто searchBar. но если вы используете searchDisplayController, вы можете реализовать метод делегата
-(void)searchDisplayControllerWillEndSearch:(UISearchDisplayController *)controller
, который будет вызываться, когда пользователь нажимает кнопку отмены или прозрачного просмотра (пустой поиск).
Другой способ обойти ваше дело - установить bool, чтобы проверить, удерживает ли окно поиска ответчик или нет (установите его, когда поисковый запрос получает ответчик). И в cellForRowAtIndexPath, проверьте это значение, и resignFirstResponder и установите значение false.
Надеюсь, что эта помощь
Обновление : пример кода Apple с использованием searchDisplayController