Панель поиска исчезает из заголовка табличного представления после нажатия кнопки Отмена / функции перезагрузки табличного представления таблицы - PullRequest
0 голосов
/ 18 октября 2019

Я изменил searchDisplayController с помощью searchController для поддержки ios 8 в моем приложении, где я использую Objective-C.

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

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

РЕДАКТИРОВАТЬ: я пробовал тот же блок кода в другом файле .m, и на этом экране он работал нормально, что-то перезаписывает-перезагружает просмотр таблицы после отменыКнопка я предполагаю, но я не мог найти, что это. Что это может быть? Чего мне не хватает?

EDIT.2: функция tableview reloadData заставляет его исчезнуть, но решения для этого пока нет.

Вот коды о строке поиска

- (void)viewDidLoad {
    [super viewDidLoad];

    self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
    self.searchController.searchResultsUpdater = self;
    self.searchController.dimsBackgroundDuringPresentation = NO;
    self.searchController.searchBar.delegate = self;
    self.tableView.tableHeaderView =  self.searchController.searchBar;
    self.definesPresentationContext = YES;
    [self.searchController.searchBar sizeToFit];
}

-(void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];

    [self.searchController.searchBar setTranslucent:NO];
    [self.searchController.searchBar setBackgroundColor:_themeColor];
}


- (void)updateSearchResultsForSearchController:(UISearchController *)searchController
{
    NSString *searchString = searchController.searchBar.text;
    [self searchForText:searchString];
    [self.tableView reloadData];
}
- (void)searchBar:(UISearchBar *)searchBar selectedScopeButtonIndexDidChange:(NSInteger)selectedScope
{
  [self updateSearchResultsForSearchController:self.searchController];
}

- (void)searchForText:(NSString *)searchString
{
    [self filterContentForSearchText:searchString
    scope:[[self.searchController.searchBar scopeButtonTitles]
           objectAtIndex:[self.searchController.searchBar
                          selectedScopeButtonIndex]]];
}
...