UIKit) UISearchController 를 사용하여 TableView를 생성해보자

2023. 7. 4. 04:13·앱/Swift

UIKit에서는 Search bar를 만드는 방법은 크게 두가지가 있다.

  • Search bar
  • SearchConroller

그렇다면 두개의 차이는 무었일까?????????????

UISearchBar

search bar는 말 그대로 서치바 이다.

UISearchBar provides a text field for entering text, a search button, a bookmark button, and a cancel button. A search bar doesn’t actually perform any searches. You use a delegate, an object conforming to the UISearchBarDelegate protocol, to implement the actions when the user enters text or clicks buttons.

서치바는, searchbarDelegate를 이용해서 텍스트가 입력되거나 버튼이눌렸을때 어떠한 액션을 취할것인지 정의하고 검색하게 된다.

UISearchController

UISearchController는 새로운 뷰 컨트롤러에 검색 결과를 보여주는 상호작용을 할때 사용하는 컨트롤러이다.

  • 즉 UISearchBar와의 큰 차이점은 “결과를 보여주는가 아닌가” 에 대한 것이다.

그래서 UISearchController에는 searchResultController가 존재하게 된다.

이런식의 구조이다.

출처 : 김종권의 iOS앱개발 알아가기 블로그 https://ios-development.tistory.com/578

사용하는 법

사실좀 많이 헤매었는데, 사실 개념만 알고나면 굉장히 간단하다.

1. UISearchController를 생성한다.

2. navigationItem에 추가한다.

3. 검색이 시작될때, 사용될 searchResultController를 생성한다.

저는 테이블 뷰로 하였습니다.

TableViewController로 만들면 좀 더 편함.

4. TableViewCell을 선언한다.

개인적으로 Nib파일 없이 하는게 훨신 편하기 때문에 그냥 저기 코드에

static let identifier = “TableViewCell” 추가해서 사용하는게 편함.

5. 서치바를 사용할 뷰에 UISearchResultsUpdating 프로토콜 채택

그리고 viewdidLoad에 searchResultsUpdater를 채택해준다.

UISearchResultsUpdating이란?

해당 프로토콜을 채택하면 안에 있는 updateSearchResults 메소드를 구현해야하는데, 이 함수는 searchbar에 입력이 들어오면 실행되는 함수이다.

가장중요한!! searchResultsController란?

searchResultsController란, searchBar에 입력이 들어왔을 때, 결과로 생성할 컨트롤러를 의미한다.

가장 중요한것은 “입력이 들어왔을 때 생성한다는것이다. “

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/a5d00568-45e6-4343-8dfa-459564159c49/%E1%84%92%E1%85%AA%E1%84%86%E1%85%A7%E1%86%AB_%E1%84%80%E1%85%B5%E1%84%85%E1%85%A9%E1%86%A8_2023-05-02_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_11.51.11.mov

Uploaded by N2T

반응형

'앱 > Swift' 카테고리의 다른 글

Swift) Identifiable 프로토콜  (0) 2023.07.04
Swift) Escaping Closure  (0) 2023.07.04
UIKit) Pull Down Button 과 Pop Up Button  (1) 2023.07.04
Singleton에서 Protocol을 이용한 의존성 개선 방법  (0) 2023.07.04
Swift) 타입으로서의 Protocol 이를 이용한 Singleton 의존성 개선  (0) 2023.07.04
'앱/Swift' 카테고리의 다른 글
  • Swift) Identifiable 프로토콜
  • Swift) Escaping Closure
  • UIKit) Pull Down Button 과 Pop Up Button
  • Singleton에서 Protocol을 이용한 의존성 개선 방법
진ddang
진ddang
안녕하세요 진땅의 개발자 블로그 입니다. 피드백은 환영입니다. 깃헙 : https://github.com/it794613
    반응형
  • 진ddang
    맛동산이
    진ddang
  • 전체
    오늘
    어제
    • 분류 전체보기 (207)
      • 일기 그리고 목표 (1)
      • 웹 (20)
        • 리액트 (19)
      • 앱 (123)
        • Swift 문법 (15)
        • Swift (69)
        • SwiftUI (32)
        • webRTC (4)
        • 리액트 네이티브 (3)
      • CS (30)
        • 컴퓨터그래픽스 (8)
        • 운영체제 (6)
        • 네트워크 (16)
      • 알고리즘 (13)
        • 백준 (12)
        • 프로그래머스 (1)
      • 대외활동 (7)
        • ict한이음(2022.04) (2)
        • 멋쟁이 사자처럼 (5)
        • Apple Developer Academy (0)
      • 다양한 내용들 (8)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    uikit
    dispatchqueue
    영남대
    스위프트
    리액트
    멋쟁이사자처럼
    멋사
    swift concurrency
    Swift
    widget
    ReactorKit
    컴퓨터그래픽스
    네트워크
    cs
    composable architecture
    문법
    스유
    TCA
    c++
    운영체제
    대외활동
    위젯킷
    백준
    후기
    Protocol
    SwiftUI
    widgetkit
    웹
    webrtc
    알고리즘
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
진ddang
UIKit) UISearchController 를 사용하여 TableView를 생성해보자
상단으로

티스토리툴바