UISearchController

검색창과의 상호작용을 기반으로 검색결과 표시를 관리하는 view controller

원문 출처 https://developer.apple.com/documentation/uikit/uisearchcontroller

Declaration

class UISearchController : UIViewController

Summary

SDKs

  • iOS 8.0+

  • tvOS 9.0+

Framework

  • UIKit

개요

Search controller(검색 컨트롤러)는 view controller와 함께 사용됩니다. 검색 가능한 컨텐츠가 있는 뷰 컨트롤러가 있다면 UISearchController 객체의 search bar를 뷰 컨트롤러의 인터페이스에 통합시키세요. 사용자가 search bar와 상호작용할때 검색 컨트롤러는 검색결과와 함께 새 뷰 컨트롤러를 보여줍니다.

검색 컨트롤러는 제공받은 두 개의 커스텀 뷰 컨트롤러와 함께 동작합니다. 첫번째 뷰 컨트롤러는 검색가능한 컨텐츠를 보여주고 두번째는 검색 결과를 보여줍니다. 첫번째 뷰 컨트롤러는 앱의 메인 인터페이스의 일부로 존재하며 앱에 적합한 모든 방식으로 표시할 수 있습니다. 두번째 뷰 컨트롤러는 검색 컨트롤러를 초기화할 때 init(searchResultsController:) 메서드를 통해 전달되며 검색 컨트롤러는 적절한 시점에 해당 뷰 컨트롤러를 보여줍니다.

각 검색 컨트롤러는 Initial View Controller의 UI에 통합되어야 하는 UISearchBar 객체를 제공합니다. 이 객체를 검색가능한 컨텐츠가 포함된 뷰에 추가하세요. 사용자가 검색어를 입력하기 위해 search bar를 터치하면 search controller는 자동적으로 검색결과 뷰 컨트롤러를 표시하고 검색 프로세스가 시작되었다는 것을 앱에 알립니다.

사용자가 search bar와 상호작용하면 검색 컨트롤러는 해당 컨트롤러의 searchResultsUpdater 프로퍼티에 알리게 되어 있고 searchResultsUpdater에는 UISearchResultsUpdating 프로토콜을 준수하는 객체를 제공해야 합니다. 이 프로토콜의 메서드를 사용하면 컨텐츠를 검색하고 검색결과 뷰 컨트롤러에 결과값을 전달할 수 있습니다. 일반적으로는 검색가능한 컨텐츠가 포함된 뷰 컨트롤러를 검색결과 업데이터 객체로도 사용하지만 원한다면 다른 객체를 업데이터 객체로 사용해도 됩니다.

검색 결과 컨트롤러가 나타나고 사라지는 동작을 커스터마이즈하고 싶다면 검색 컨트롤러의 delegate 프로퍼티에 UIControllerDelegate 프로토콜을 준수하는 객체를 할당하세요. 해당 프로토콜의 메서드는 검색 컨트롤러가 활성화되었을 때, 검색결과 컨트롤러가 나타나거나 사라질때 알림을 받습니다.

Note

UISearchController 객체는 뷰 컨트롤러기는 하지만 인터페이스에 직접적으로 표현할 수는 없습니다. 명시적으로 검색결과 뷰 컨트롤러를 표현하고 싶다면 검색 컨트롤러를 UISearchContainerViewController 객체에 감싸서 나타내세요.

iOS에 검색 컨트롤러를 구현하는 방법을 알고 싶으시다면 검색 컨트롤러로 검색 가능한 컨텐츠 표시하기 문서를 읽어보세요.

tvOS에서 UISearchContainerViewController에 내장된 검색 컨트롤러를 구현하고 싶으시다면 UIKit Catalog (tvOS): UIKit Control 생성과 커스터마이징 문서를 읽어보세요.

주제

검색 컨트롤러 초기화

  • init(searchResultsController: UIViewController?) 지정된 뷰 컨트롤러에 결과를 보여주는 검색 컨트롤러를 초기화하여 반환합니다.

Responding to Presentation and Dismissal

  • var delegate: UISearchControllerDelegate? 검색 컨트롤러의 delegate

  • protocol UISearchControllerDelegate 검색 결과 객체의 delegate 메서드 집합

검색 결과 관리

  • var searchBar: UISearchBar 인터페이스에 설치되는 search bar

  • var searchResultsUpdater: UISearchResultsUpdating?

    검색 결과 컨트롤러의 컨텐츠 업데이트를 책임지는 객체

  • var searchResultsController: UIViewController? 검색 결과를 보여주는 뷰 컨트롤러

  • var isActive: Bool 검색 인터페이스의 표시 상태

검색 인터페이스 설정

  • var obscuresBackgroundDuringPresentation: Bool 검색 중에 표시되어 있는 컨텐츠를 흐릿하게 나타냅니다.

  • var dimsBackgroundDuringPresentation: Bool Deprecated 검색 중에 표시되어있는 컨텐츠를 어둡게 나타냅니다.

  • var hidesNavigationBarDuringPresentation: Bool 검색 중에 네비게이션 바를 숨깁니다.

Initializers

  • init?(coder: NSCoder)

  • init(nibName: String?, bundle: Bundle?)

Instance Properties

  • var automaticallyShowsCancelButton: Bool Beta

  • var automaticallyShowsScopeBar: Bool Beta

  • var automaticallyShowsSearchResultsController: Bool Beta

  • var showsSearchResultsController: Bool Beta

관련 문서

상속

준수하는 프로토콜

  • CVarArg

  • Equatable

  • Hashable

  • NSExtensionRequestHandling

  • UIPasteConfigurationSupporting

  • UIStateRestoring

  • UIUserActivityRestoring

  • UIViewControllerAnimatedTransitioning

  • UIViewControllerTransitioningDelegate

같이 보기

검색 인터페이스

  • class UISearchContainerViewController 인터페이스상의 검색결과 표시를 관리하는 view controller

  • class UISearchBar 사용자로부터 검색 관련 정보를 받기위한 특수 뷰.

  • protocol UISearchResultsUpdating 사용자가 검색창에 입력한 정보를 기반으로 검색결과를 업데이트 할 수 있는 메서드들

  • 검색 컨트롤러를 사용하여 검색가능한 컨텐츠 표시하기 검색가능한 컨텐츠와 테이블 뷰를 사용하여 사용자 인터페이스를 생성하세요

Last updated