2017-11-22 2 views
0

내 테이블보기의 데이터 소스가 비어있을 때 검색 창이 표시되지 않도록하고 싶습니다. (의미가 있습니다. 기본 동작이 아니어야합니다.)데이터 소스가 nil 일 때 UISearchBar를 사용/사용하지 않음

여기에 달성하기 위해 다른 것을 시도하는 코드가 있는데, 어떻게 든 작동하지 않습니다.

아무도 내가 뭘 잘못하고 있다고 조언 할 수 있습니까? 더 많은 스 니펫이 필요한지 알려주세요.

messagesArray=loadMessages() 

     DispatchQueue.main.async { 
      if (self.messagesArray.count==0){ 
       self.noMessageview.isHidden=false 
       //self.searchController.searchBar.isHidden = true 
       //self.searchController.isActive = false 
      } else{ 
       self.noMessageview.isHidden=true 
       //self.searchController.searchBar.isHidden = false 
       //self.searchController.isActive = true 
      } 


      self.spinner.stopAnimating() 
      self.refreshControl.endRefreshing() 
      self.tableView.reloadData() 
     } 

는 UPDATE :

let searchController = UISearchController(searchResultsController: nil) 

을하고있는 viewDidLoad에서 내가 할 :

나는 다음과 같이 검색 컨트롤러를 선언

navigationItem.searchController = searchController 
+0

searchController를 어떻게 추가 했습니까? 더 자세히 설명하고 질문을 업데이트 할 수 있습니까? 테이블 뷰 헤더 또는 탐색 모음에 추가됩니까? – AaoIi

답변

0

난 당신이 아이폰 OS를 사용하는 생각 11 설정 때문에 UISearchController에서은, 따라서 당신은 그것을 제거하려면 다음 코드를 사용할 수 있습니다 : 나는 몇 가지 문제를 가지고 있었고, 내가 UISearchController을 제거 할 때의 아이폰 OS (11) 버그, 뷰가 조정되지 않습니다 생각

if #available(iOS 11.0, *) { 
     self.navigationItem.largeTitleDisplayMode = .never; 
     self.navigationItem.searchController = nil 
    } else { 
     // Fallback on earlier versions 
     self.navigationItem.titleView = nil 
    }; 

따라서 내가이 전화를했다 UISearchController을 제거하기 바로 전에

self.navigationItem.largeTitleDisplayMode = .never; 

모두입니다.

+0

감사! 참으로 작동합니다. 그러나 기분이 이상합니다. – Sjakelien

관련 문제