1

긴 문자열 목록이있는 테이블보기가 있습니다. 각 섹션에 대한 헤더, 오른쪽에있는 색인 및 검색 버튼이 있습니다. 이것은 IBIS가 아닌 UISearchDisplayController를 사용하여 프로그래밍 방식으로 구현되었습니다. 검색 버튼이 활성화되면UISearchDisplayController 취소 단추가 머리글과 색인을 새로 고치지 않습니다.

는 취소 버튼의를 클릭
if ([self.searchDisplayController isActive])

문제는, 요구해서, 나는 (titleForHeaderInSection)에 헤더를 숨기고, (sectionIndexTitlesForTableView에서) 인덱스를 숨기기 헤더와 색인은 처음에는 숨겨져 있습니다. 내가 (searchBarCancelButtonClicked에서) [self.tableView reloadData]에 전화를 걸었지만 작동하지 않습니다.

viewWillAppear[self.tableView reloadData]이 있는데, 이는 한 가지 방법으로 도움이됩니다. 행을 선택하고 스택에 다른보기를 밀어 넣은 다음이 표로 돌아가서 원하는대로 헤더와 색인이 표시됩니다.

내가 뭘 잘못하고 있니?

답변

0

내가 찾은 가끔, [있는 tableView reloadData] 기능이 작동하지 않는 경우,이 의지하고 : 때때로 테이블보기가 될 때까지 기다려야 한 상태에 들어간 이유가 뭐든

[tableView performSelector:@selector(reloadData) withObject:nil afterDelay:0]; 

을 다시로드하기 전에 실행 루프를 통해 다음 반복이 효과적입니다.

+0

니스. 고맙습니다. – coco

+0

여러분을 환영합니다! 또한 reloadData가 발견 한 애니메이션을 취소하기 때문에 다시로드와 함께 행 삽입/삭제 애니메이션을 수행하려는 경우 때때로 0보다 큰 지연 시간을 넣으십시오 (0.3 작동). – Bogatyr

관련 문제