with - uisearchresultsupdating swift 4




Como você dispensa um UISearchController?(iOS 8 e seguintes) (4)

Eu estava apresentando a mina incorporada em uma barra de navegação. O código que funciona para mim foi:

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar{
    dispatch_async(dispatch_get_main_queue(), ^{
        [self.searchController setActive:NO];
        self.navigationController.navigationBar.topItem.title = @"MYTITLE".uppercaseString;
        self.navigationItem.titleView = nil;
    });
}

Espero que ajude alguém.

Isso deve ser trivial, mas não consigo encontrar como você deve descartar um UISearchController programaticamente?

Observe que é o novo UISearchController (lançado em 2014 com iOS 8), não o UISearchDisplayController.

Até agora, aqui está o que eu tenho

// Dismiss the search tableview
searchController.dismissViewControllerAnimated()
// Clear the Search bar text
searchController.active = false

Mas ainda tenho o botão Cancelar e não consigo me livrar dele.


Eu tive esse problema usando o search and transactionController, resolvido depois de incluir apenas a linha: self.dismissViewControllerAnimated (false, conclusão: nil)

Abra a interação e limpe a pesquisa sem alterações no delegado.


SWIFT 4+

searchController.isActive = false

Você teve esse problema ao tentar descartar o controlador de pesquisa após seguir para outra exibição? Eu também encontrei esse problema. Eu acho que você pode querer usar

self.definesPresentationContext = true 

no controlador de exibição que apresenta o UISearchController de acordo com este post UISearchController não descartado quando a exibição é pressionada . Funciona para mim.