UITableViewController
Table View 관리에 특화된 view controller
원문 출처 https://developer.apple.com/documentation/uikit/uitableviewcontroller
Declaration
Summary
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() 또는 다른 상위 클래스 메서드를 오버라이드 할 수 있지만 그럴 경우 상위 클래스의 구현을 우선적으로 호출하도록 해야 합니다.
역자 주 설명이 어려운 듯 하여 추가 설명을 간략히 덧붙입니다. 즉 오버라이드를 할 경우 다음과 같이 구현해야 한다는 뜻입니다.
주제
테이블 뷰 컨트롤러 생성
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