3

내 앱을 타겟팅하는 것이 iOS 7 & iOS 8에서 실행되어야합니다. UISearchDisplayController는 iOS 8에서 사용되지 않으므로 iOS 8 용 UISearchController가 사용되었습니다.하지만 작동하지 않습니다. iOS 7에서 사용할 수 있습니다. 그러면 UISearchDisplayController를 사용하면 iOS 7에서 작동합니다.하지만 두 플랫폼에서 모두 검색 컨트롤러를 구현하는 가장 좋은 방법은 무엇입니까? 내가 어떻게 검색 창 탐색 모음에서 볼 수 있는지 확인하기 위해 프로그래밍 방식으로 위와 같이 UISearchDisplayController을 구현할 수iOS 7 및 iOS 8에 대한 검색 컨트롤러 구현 방법

override func viewDidLoad() { 
      super.viewDidLoad() 

      // Search Controller Setup 
      searchController = UISearchController(searchResultsController: nil) 
      searchController.searchBar.delegate = self 
      searchController.searchResultsUpdater = self 
      searchController.dimsBackgroundDuringPresentation = false 
      searchController.searchBar.placeholder = "ব্র্যান্ড/সংস্থা/দোকান খুঁজুন" 

      // Make sure the that the search bar is visible within the navigation bar. 
      searchController.searchBar.sizeToFit() 
      tableView.tableHeaderView = searchController.searchBar 
      definesPresentationContext = true 
} 

및 SWIFT에 아이폰 OS 7 - 아이폰 OS 8에서 내가 검색 컨트롤러 다음과 같이 구현?

답변

1

ios7 방식을 사용하십시오. 비록 그것이 비싸더라도. 또는 iOS7 핸들과 iOS8 핸들을위한 코드 두 개를 만들어야합니다. iOS 7을 타겟팅하는 경우 Xcode에서 경고를 표시하지 않습니다.

+0

내가 어떻게 iOS 8을 위해했던 것처럼 프로그래밍 방식으로 UISearchDisplayController를 구현할 수 있습니까? UISearchController (searchResultsController : nil) 대신 searchController = UISearchDisplayController (searchResultsController : nil)를 시도했습니다. 하지만 작동하지 않아. – Nuibb

1
searchController = UISearchController(searchResultsController: nil) 

// 당신은 자기의 대리자를 설정할 필요가없는 // 탐색 바

searchController.searchBar.sizeToFit() 
    tableView.tableHeaderView = searchController.searchBar 
    definesPresentationContext = true 

에 표시

searchController.searchBar.tintColor = UIColor.whiteColor() 
    searchController.searchBar.barTintColor = UIColor(red: 235.0/255.0, green: 73.0/255.0, blue: 27.0/255.0, alpha: 1.0) 
    searchController.searchBar.placeholder = "Search Something" 
    searchController.searchBar.prompt = "Quick Search" 

// 검색 창을 확인 검색 바의 모양 변경 대신

searchController.searchResultsUpdater = self 
    searchController.dimsBackgroundDuringPresentation = false // important 

이 후, 검색의 논리를 포함

func updateSearchResultsForSearchController(searchController: UISearchController) 

을 UISearchResultsUpdating 프로토콜을 준수하고 구현해야합니다.