6

테이블 뷰 컨트롤러의 하위 클래스 인 테이블 뷰 및 검색 창이있는 부모 클래스가 있습니다. searchBar 및 searchdisplaycontroller의 대리자는 UISearchdisplaycontroller에서 상속 된 별도의 클래스로 설정됩니다. 테이블 뷰와 검색 바에 대한 데이터 소스와 델리게이트는이 클래스에서 별도로 처리됩니다. 수업은 ARC하에 있습니다.검색보기를 닫을 수 없습니다.

따라서 사용자가 검색을 누르면 컨트롤이 FilesListController (부모) 클래스에서이 클래스로 전송됩니다. 취소 버튼의 사용자 탭은 검색 창 위양이이 클래스 즉

- (void)searchBarCancelButtonClicked:(UISearchBar *) searchBar 

에 설정하면 이제라고하지만, 전체 화면 searchtableview 기각의 목적을 제공하고 parentviewcontroller에 반환하지 않습니다. 그러나 검색 클래스에이 대리자를 쓰지 않으면 제대로 작동합니다. 이 같은

- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar 

: 내가 XIB와 전화에 검색 창 위임을 설정 한

self.searchResultsTableView.delegate = self; 
self.searchResultsTableView.dataSource = self; 
[parentFileViewController.searchDisplayController setDelegate:self]; 

어디서 잘못된 것입니까? 미리 감사드립니다.

+0

[self.searchDisplayController setActive : NO anima ted : YES]; – jussi

+0

안녕하세요. @jussi .. 작품! 하지만 왜 그 자체로 해고되지 않습니까? 이것은 searchviewcontroller가 강제로 종료되도록하는 것과 같습니다. –

+0

일부 사용자는 컨트롤러를 배포하기 전에 일부 정보를 저장하기를 원하기 때문입니다. 나는 이것을 답변으로 올리겠습니다. – jussi

답변

13

즉 대리인이 함수의 응답을 사임 구현해야합니다 :

[self.searchDisplayController setActive:NO animated:YES]; 
1

당신이하는 SearchBarController와 UISearchBar를 기각 그냥이 코드를 사용하려는 경우

- (void)searchBarCancelButtonClicked:(UISearchBar *) searchBar { 
     [searchBar resignFirstResponder]; 
} 
+0

이것은 단순히 키보드를 닫지 만 검색보기와 취소 버튼을 닫지 않습니다. 그 경우에는 –

+0

, jussi는 맞습니다. – cekisakurek

-1

메모리 경고가 나타날 수 있습니다 응용 프로그램 실행 중 언제든지 메모리 경고가 발생하고보기 및 일회용 객체를 다시 만들어야한다고 가정해야합니다.

- (void)didReceiveMemoryWarning 
{ 
[super didReceiveMemoryWarning]; 

if([self isViewLoaded] && self.view.window == nil) 
{ 
    self.view = nil; 
    keys = nil; 
    names = nil; 
    errorDuringNetworkCall = nil; 
} 
} 

을 그리고 SEGUE 작업을 수행하기 전에 검색 바의 tableview를 닫아 :

우리는 우리의 배열 전무로 설정하여 이러한 상황을 처리하는 수신 메모리 경고 후

[self performSegueWithIdentifier:@"navigateToNextScreen" sender:self]; 
self.searchBar.text = @""; 
[self.searchDisplayController setActive:NO animated:YES]; 

을 viewDidLoad 메서드가 다시 호출되고 배열이 채워지면 검색 표시 줄이 계속 유용합니다.

+0

나는이 질문을 전혀 대답하지 않습니다. –

관련 문제