2017-10-24 1 views
2

crashlytics에 따르면 다음과 같은 충돌이 발생합니다 (드물게).iOS UISearchController crash : 응용 프로그램 자체에서 모달 뷰 컨트롤러를 표시하려고했습니다.

출원 자체 모달 뷰 컨트롤러를 제공하려고. 프리젠 테이션 컨트롤러는입니다.

난 전혀이 문제를 복제 할 수 없습니다. 이것이 내가 UISearch Controller를 설정하는 방법입니다. 나는 모든 아이디어의 부족이기 때문에

self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil]; 
    self.searchController.dimsBackgroundDuringPresentation = NO; 
    self.searchController.searchBar.delegate = self; 

    self.tableView.tableHeaderView = self.searchController.searchBar; 
    self.definesPresentationContext = YES; 

어떤 도움에 감사드립니다. 필요한 경우 더 많은 코드를 게시 할 것입니다.

+0

같은 선택 방법? 문제의 View Controller를 어디에 제시하려고합니까? – mckeejm

+0

설정이 표준입니다. 오류가 발생하는 전환과 같은 몇 가지 추가 컨텍스트가 필요합니다. 디버거에서 예외를 트랩 할 수 있습니까? UISearchControllerDelegate 메서드에서 현재 검색을 변경하려고 시도하는 동작으로 인해 이러한 오류가 발생했습니다. –

답변

6

내가 iOS 11로 업데이트했을 때 그 문제가 발생했습니다. 내 시나리오는 Textfield를 가지고 있었고 사용자가 검색보기를 만들 때 기본적으로 검색 표시 줄이있는 tableview가 팝업으로 표시되었습니다. 일단 tableview 셀을 두드리면 닫아야합니다.

문제는 아이폰 OS (11) 이후, OS가 firstResponder 상태를 복원을 시도하는 것 같다. 긴 이야기가 짧다. I가, NO = 활성 추가 할 때

그것은 도움이 내 한 사실을 충돌 무엇 라인 때문에

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    self.searchController.active = NO; // Add this ! 
    ... 

    [self dismissViewControllerAnimated:YES completion:nil]; 
} 
+0

이상하게도 충분히 '능동 = 아니오'는 나를 추락시킨 원인이었습니다. 선을 삭제하면 더 이상 내 앱이 다운되지 않습니다. 이 글을 쓰는 시간은 2017 년 12 월 19 일이었습니다. Apple이 최신 업데이트로 수정했을 수도 있습니다. – Zhang

관련 문제