developer tip

UISearchController를 어떻게 해제합니까?

copycodes 2020. 11. 19. 21:40
반응형

UISearchController를 어떻게 해제합니까? (iOS 8 이상)


이것은 사소한 일이지만 프로그래밍 방식으로 UISearchController를 닫는 방법을 찾을 수 없습니까?

UISearchDisplayController가 아니라 새로운 UISearchController (iOS 8과 함께 2014 년에 도입 됨)입니다.

지금까지 내가 가지고있는 것은

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

하지만 여전히 취소 버튼이 있고 제거 할 수 없습니다.


좋습니다. 더 많은 테스트를 마치면 다음을 설정해야합니다.

searchController.active = false
// or swift 4+
searchController.isActive = false

이것은 내가 시도한 첫 번째 일이지만 작동하지 않는 UISearchControllerDelegate 메서드 중 하나에서 호출했습니다 (아마 dispatch_async로 호출해야했습니다 (halbano의 대답은 확인하는 것 같습니다)).

어쨌든 온라인에서 그 답을 찾을 수 없었기 때문에 내 질문에 답하고 있으니 누군가에게 도움이 되길 바랍니다.


다른보기로 이동 한 후 검색 컨트롤러를 닫으려고 할 때이 문제가 발생 했습니까? 이 문제도 발생했습니다. 나는 당신이 사용하고 싶을 것 같아요

self.definesPresentationContext = true 

이 게시물에 따라 UISearchController를 제공하는 뷰 컨트롤러에서 뷰가 푸시 될 때 UISearchController가 닫히지 않습니다 . 그것은 나를 위해 작동합니다.


내비게이션 바에 광산 임베드를 제시했습니다. 나를 위해 작동하는 코드는 다음과 같습니다.

- (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;
    });
}

누군가에게 도움이되기를 바랍니다.


SWIFT 4+

searchController.isActive = false

검색 및 interactionController를 사용 하여이 문제가 발생했습니다. self.dismissViewControllerAnimated (false, complete : nil)

대화를 열고 대리인을 변경하지 않고 검색을 지 웁니다.

참고 URL : https://stackoverflow.com/questions/28438373/how-do-you-dismiss-a-uisearchcontroller-ios-8-and-follow

반응형