UITableViewController
Table View 관리에 특화된 view controller
원문 출처 https://developer.apple.com/documentation/uikit/uitableviewcontroller
Declaration
class UITableViewController : UIViewController@interface UITableViewController : UIViewControllerSummary
SDKs
iOS 2.0+
tvOS 9.0+
Framework
UIKit
개요
인터페이스가 테이블 뷰 외의 다른 컨텐츠가 거의 없는 경우에는 UITalbeViewController를 서브클래싱하세요. 테이블 뷰 컨트롤러는 테이블 뷰의 컨텐츠를 관리하거나 변화에 대응하는 프로토콜을 처음부터 채택하고 있습니다. UITableViewController는 다음 동작을 구현합니다:
- 스토리보드나 nib 파일에 저장되어 있는 테이블 뷰를 자동으로 로딩해옵니다. 이 테이블 뷰는 tableView 프로퍼티를 통해 접근할 수 있습니다. 
- 테이블 뷰의 dataSource와 delegate를 자기 자신(self)으로 설정합니다. 
- viewWillAppear(_:) 메서드를 구현해서 테이블 뷰가 처음 나타날때 자동으로 데이터를 다시 불러옵니다. 테이블 뷰가 보일 때마다 항목이 선택해제되는데 (요청에 따라서 애니메이션을 비활성화 할 수 있습니다) clearsSelectonOnViewWillAppear 프로퍼티값을 바꿈으로써 이 동작을 바꿀 수 있습니다. 
- viewDidAppear(_:) 메서드를 구현해서 테이블 뷰가 처음으로 나타날때 스크롤 인디케이터를 깜박입니다. 
- setEditing(_:animated) 메서드를 구현하여 사용자가 네비게이션 바의 Edit/Done 버튼을 탭하면 자동으로 편집 모드를 토글할 수 있습니다. 
- 스크린에 키보드가 나타나고 사라짐에 따라 테이블 뷰의 크기를 자동으로 조정합니다. 
관리할 테이블 뷰마다 UITableViewController의 커스텀 서브클래스를 만드세요. 테이블 뷰 컨트롤러를 초기화 할 때에는 만드시 테이블 뷰의 스타일(일반 또는 그룹 테이블)을 지정해야 합니다. 또한 테이블을 데이터로 채우기 위해서 data source와 delegate 메서드도 반드시 오버라이드해야 합니다. loadView() 또는 다른 상위 클래스 메서드를 오버라이드 할 수 있지만 그럴 경우 상위 클래스의 구현을 우선적으로 호출하도록 해야 합니다.
역자 주 설명이 어려운 듯 하여 추가 설명을 간략히 덧붙입니다. 즉 오버라이드를 할 경우 다음과 같이 구현해야 한다는 뜻입니다.
override func loadView() {
    super.loadView()    // 상위 클래스 loadView 호출
    // ...이하 오버라이드할 구현 코드
}주제
테이블 뷰 컨트롤러 생성
- init(style: UITableView.Style) - 주어진 style대로 테이블 뷰 컨트롤러를 초기화합니다. 
- init?(coder: NSCoder) 
- init(nibName: String?, bundle: Bundle?) 
테이블 뷰 가져오기
- var tableView: UITableView! 컨트롤러 객체로 관뢰되는 테이블 뷰를 반환합니다. 
테이블 뷰 동작 설정
- var clearsSelectionOnViewWillAppear: Bool 테이블이 나타날 때 컨트롤러가 선택된 항목을 선택 해제하도록 할 것인지를 나타내는 Boolean 값 
테이블 뷰 새로고침
- var refreshControl: UIRefreshControl? 테이블 컨텐츠를 업데이트하는데 사용되는 refresh 컨트롤 
관련 문서
상속받은 대상
- UIViewController 
준수하는 프로토콜
- CVarArg 
- Equatable 
- Hashable 
- NSExtensionRequestHandling 
- UIPasteConfigurationSupporting 
- UIStateRestoring 
- UITableViewDataSource 
- UITableViewDelegate 
- UIUserActivityRestoring 
같이 보기
커스텀 뷰 컨트롤러
- class UIViewController UIKit 앱의 View 계층구조를 관리하는 객체 
- class UICollectionViewController Collection View 관리에 특화된 view controller 
- protocol UIContentContainer view controller의 컨텐츠를 뷰 사이즈와 제약사항에 맞게 조정하는 메서드들 
Last updated
