내 프로젝트에서 내 tableView의 데이터를 필터링하기 위해 내부 UISearchController와 함께 tableViewController를 사용하고 있습니다.UISearchController의 취소 버튼
데이터 필터링에는 문제가 없지만 취소 버튼을 클릭하면 UISearchController를 클릭하면 tableView를 다시 불러올 필요가 있지만 위임 방법을 찾을 수 없습니다. 어떻게 이해할 수 있습니까? 이 문제를 해결하려면?
내 프로젝트에서 내 tableView의 데이터를 필터링하기 위해 내부 UISearchController와 함께 tableViewController를 사용하고 있습니다.UISearchController의 취소 버튼
데이터 필터링에는 문제가 없지만 취소 버튼을 클릭하면 UISearchController를 클릭하면 tableView를 다시 불러올 필요가 있지만 위임 방법을 찾을 수 없습니다. 어떻게 이해할 수 있습니까? 이 문제를 해결하려면?
UISearchController의 searchBar 대리자를 설정해야합니다. 이 작업을 완료하면 대리자 메서드 인 searchBarCancelButtonClicked :가 제대로 호출됩니다. 당신이 UISearchResultsUpdating
프로토콜을 구현하는 경우
self.searchController.searchBar.delegate = self;
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar {
}
, 당신은 active
이 false
때 트리거 취소 된 것을 알 수 있습니다.
func updateSearchResultsForSearchController(searchController: UISearchController) {
if !searchController.active {
print("Cancelled")
}
}
약간의 설명이 유용 할 것입니다. – gsamaras
@ G.Samaras 이것은 SearchBar의 델리게이트 메서드입니다 ... searchbar 델리게이트를 직접 사용하는 searchController이므로 파일 헤더 내에서 UISearchBarDelegate를 호출하고 viewDidLoad에서 검색 창 (self.searchController.searchBar.delegate = self;)을 위임하거나 구현 파일에 사용 된 다른 메소드 ... 그러면 SearchBar searchBarCancelButtonClicked의 델리게이트 메소드 내에서 코드를 호출하고 취소 버튼을 실행해야하는 함수를 지정할 수 있습니다. – kAiN
@Gargoyle 모두에게 감사합니다! – kAiN