-
UISearchbar, UISearchController 기초 사용법개발/Swift 2023. 7. 2. 14:45
WWDC21에 서치바라는것을 발견했다.
그동안 textfield를 가지고 서치바를 구현했는데 이런것을 지원하고 있는지도 몰랐다.
타겟 버전을 높게 하지 않아도 서치바를 사용할수있다. iOS8 이상
그럼 텍스트필드로 만드는것 보다 뭐가 더 유리할지 직접 사용해보자
UISearchController라는게 있다.
let searchController = UISearchController() navigationItem.searchController = searchController
이렇게만해도 사용가능하다 그러면 상단에 서치바가 위치한다. 따로 addview , constraint하지 않아도 됨
class ViewController: UIViewController, UISearchResultsUpdating {}
UISearchResultsUpdating 프로토콜 을 채택하면
updateSearchResults() 함수를 사용할수 있다.
func updateSearchResults(for searchController: UISearchController) { let text = searchController.searchBar.text }
그러면 이렇게 text에 접근할수 있다.
UISearchController(resultController: ResultVC())
UISearchController 를 생성할때 resultController를 넣어서 init 할수있다.
이거는 검색결과를 보여줄떄 사용할 VC 이다
흔히 우리가 검색 타이핑할떄 실시간으로 보여줄 검색어 목록이나 검색 결과 등등이 있을것이다.
그래서 updateSearchResults 함수에서 text에 따라 viewmodel에 데이터를 요청하고
ViewModel에서 데이터를 받아 VC에 전달해주면
VC에서 그 데이터를 가지고 ResultVC 안에 있는 Tableview에 바인딩 해주는식으로
구현하면 될듯하다.
어찌되었건 Searchbar라는 UI를 간단하게 구현할수 있다는 장점 (clear 버튼같은거 구현 안해도 됨)
그러나 커스텀이 잘 지원이 될지에 대한 의문점
그리고 검색 결과에대한 View를 쉽게 구현할수 있다는 장점 ( View 를 전환하거나 hidden 처리 안해도 됨)
에 장점 이 있는듯 하다.UISearchbar
'개발 > Swift' 카테고리의 다른 글
[HIG] Button 읽기 (0) 2023.09.25 Swift 데이터 감싸져 있는 안에 있는 값 꺼내서 Decode하기 (0) 2023.07.22 Rxswift combineLatest 에러 The compiler is unable to type-check this expression in reasonable time (0) 2023.07.01 커스텀 UISlider 구현하기 (세로 슬라이드, 이벤트) (0) 2023.06.24 Collection View가 들어있는 동적 높이의 Table view Cell 구현하기 (0) 2023.06.18