0

성가신 문제가 있습니다. 내 UISavitController있는 UITableView 내 UISplitViewController 마스터 (왼쪽) 창에서 있습니다. 정상적인 작업을 수행 할 때 상황이 네비게이션 컨트롤러로 전달됩니다. 내가 검색을하고 물건을 밀어 때 공간에 대한 탐색 모음의 요구를 고려하지 않습니다처럼UINavigationController + UITableView + UISearchBar + UISplitViewController

alt text http://files.droplr.com/files/8851942/WDO5y.working.jpg

그러나,이다. 그것은 맨 위에 새 컨트롤러를 밀어 넣은 다음 내용을 겹쳐서 탐색기를 켭니다.

alt text http://files.droplr.com/files/8851942/WDRem.search.jpg

나는 (팝업 메뉴)와 아이폰에 초상화를 수행 할 때 잘 작동 추가해야합니다. 이것은 UISplitViewController 버그입니까?

답변

1

OK, 당신의 답변 -있어 [나는 또한 링크 된 질문에 대한이 답변을 게시] 당신은 가장 확실하게 이미 오버라이드하고있는 것을 검색하고 있습니다 ShouldReloadForSearch - 따라서 forSeachString을 저장/저장하는 코드 조각을 추가하십시오.

2) 앱에 따라 다소 차이가있을 수 있지만이 단계의 요점은 검색 결과가로드되지 않은 경우 저장된 검색 문자열 [null로 설정]을 삭제해야한다는 것입니다. 나는 내 UITableViewSource에서 이것을했다. 두 개의 생성자가 있습니다. 하나는 전체 데이터 집합이고 다른 하나는 필터링 된 [검색 결과] 데이터 집합입니다. 그래서 난 그냥 내 전체 dataset 생성자에서 null로 설정합니다. 네, 틀림없이 다르게 할 수는 있겠지만 그것이 제가 한 일입니다.

3) 그런 다음 원래의 "응답"상태로하고 SetActive - [self.searchDisplayController setActive:NO];을 호출하십시오. 그들은 ViewDidAppear을 무시하고 그것을지지했습니다. 나는 그것을하지 않았다 ... 내 RowSelected 재정의 다음 UIViewController 밀어 후 즉시 않았다.

마지막으로 UISearchDisplayController가 연결된 UIViewController 내에서 저장된 검색 문자열을 확인하고 존재하는 경우 다음을 수행하십시오. 1) SetActive를 다시 호출하지만 실제 매개 변수 setActive:YES ...을 사용하여이 시간을 다시 호출하십시오. 2) searchBar 텍스트를 저장된 검색 문자열 값으로 설정하십시오. ViewWillAppear 무시에서이 작업을 수행했습니다.

긴 이야기 짧게 ... 이것은 나를 위해 일했으며 검색 결과를 유지합니다. 4 단계에서 searchBar 텍스트를 설정하는 것이 핵심입니다 ...이것은 효과적으로 필터가 지속되도록합니다.

희망이 도움이된다 누군가

1

1 달 전에이 질문에 답을 얻었습니다. 해결책을 찾았는지 모르겠지만 동일한 문제에 직면 해 있으며 Google이 계속이 스레드를 가져오고 있습니다. 나는 아직 내 제품이 출하 될 때까지 기다리고 있지만 시뮬레이터에서 이와 같이 발생했다. 탐색 막대 위에 아무 것도 밀면 탐색 막대 위에 UITableViewController 하위 클래스 인 루트보기가 있습니다. 탐색 막대의 위쪽이나 아래쪽에보기가 나타나거나 위치가 올바르지 만 탐색 할 수없는 막대가 표시됩니다.

결국 검색 디스플레이 컨트롤러가 활성화되지 않도록 설정하려면 [self.searchDisplayController setActive:NO];, viewDidDisappear 또는 viewWillDisappear를 덮어 쓰면보기가 사라질 때가 왔습니다. 이제 모든 것이 올바른 프레임/경계를 얻는 것처럼 보이지만 터지는 순간 검색 디스플레이가 손실됩니다. 당신이 원한다면, 돌아올 때 검색 디스플레이의 상태를 저장하고 돌아올 때 되돌릴 수 있다고 생각합니다. 솔루션을 찾은 경우 다른 솔루션에서 알려줍니다.

1) 가입일 :

다음

나를 위해 일한 단계는 [어떤 의사를 포함] 있습니다 -