테이블뷰 관리를 전문으로 하는 뷰 컨트롤러
인터페이스가 테이블뷰로 구성되고 다른 요소는 거의 혹은 아예 없는 경우, UITableViewController
를 서브클래스로 생성합니다. Table view controller
는 table view의 컨텐츠를 관리하고 변경 사항에 대응하는 데 필요한 프로토콜을 이미 채택하고 있습니다.
UITableViewController는 다음과 같은 동작을 구현합니다.
스토리보드
또는 니브 파일
에 아카이브된 테이블뷰를 자동으로 로드합니다. tableView
프로퍼티을 사용하여 테이블뷰에 액세스합니다.
데이터 소스와 데이터 델리게이트를 자동으로 설정합니다.
viewWillAppear(_:)
메서드를 구현하고, 처음 나타날 때 테이블뷰에 대한 데이터를 자동으로 다시 로드합니다. 테이블뷰가 표시될 때마다 선택 항목(요청에 따라 애니메이션 포함 또는 제외)을 지웁니다. clearSelectionOnViewWillAppear
프로퍼티 값을 변경하여 이 동작을 비활성화할 수 있습니다.
viewDidAppear(_:)
메서드를 구현하고 테이블뷰가 처음 나타날 때 자동으로 스크롤 표시기
를 깜박입니다.
setEditing(_:animated:)
메서드을 구현하고 사용자가 Edit|Done
버튼을 누르면 테이블의 편집 모드를 자동으로 전환합니다.
화면 키보드의 등장과 사라짐을 수용할 수 있도록 테이블뷰의 크기를 자동으로 조정합니다.
관리하는 각 테이블뷰에 대해 UITableViewController의 사용자 정의 서브클래스를 생성합니다. 테이블뷰 컨트롤러를 초기화할 때는 테이블뷰의 스타일(일반(plain) 또는 그룹화(grouped))을 지정해야 합니다. 또한 테이블을 데이터로 채우는 데 필요한 데이터 소스 및 데이터 델리게이트도 재정의해야 합니다. loadView()
나 다른 슈퍼클래스 메서드를 재정의할 수 있지만, 재정의할 경우 메소드의 슈퍼클래스 구현을 호출해야 합니다(일반적으로 첫 번째 메서드 호출).
init(style: UITableView.Style)
init?(coder: NSCoder)
init(nibName: String?, bundle: Bundle?)
var tableView: UITableView!
var clearSelectionOnViewWillAppear: Bool
var refreshControl: UIRefreshControl?