티스토리 뷰
[iOS 앱개발 프로그래밍] UIKit - Table View - UITableViewController
Dev_Pingu 2020. 7. 18. 19:25Apple Developer Documentation - UITableViewController
UITableViewController
테이블 뷰를 제어하기 위한 뷰 컨트롤러
Declaration
class UITableViewController : UIViewController
Overview
인터페이스가 테이블 뷰로 구성되어 있고 다른 내용이 거의 없을 때 서브 클래스로 UITableViewController를 사용한다. 테이블 뷰 컨트롤러는 테이블 뷰의 내용을 관리하고 변경에 응답하는데 필요한 프로토콜을 채택했다. 그리고 UITableViewController는 다음 동작을 실행한다.
1. 스토리보드 또는 nib 파일에 보관된 테이블 뷰를 자동적으로 로드한다. tableView 프로퍼티를 사용해서 테이블 뷰에 접근할 수 있다.
2. 테이블 뷰 자체의 data source와 델리게이트를 설정한다.
3. 테이블 뷰가 처음으로 나타날 때 viewWillAppear(_ :) 메서드가 실행되는데 이때 테이블 뷰의 데이터를 자동으로 다시 로드한다. 또한 테이블 뷰가 표시될 때마다 테이블 뷰의 선택을 초기화한다. 이러한 동작은 clearsSelectionOnViewWillAppear 프로퍼티의 값을 변경하여 비활성화할 수도 있다.
4. viewDidAppear(_ :) 메서드가 실행될 때 테이블 뷰의 스크롤 표시기가 자동으로 깜빡인다.
5. setEditing(_ :animated:) 메서드가 실행될 때 사용자가 내비게이션 바에 있는 Edit, Done 버튼을 누르면 자동적으로 편집모드로 변경한다.
6. 테이블 뷰의 크기를 키보드가 생성되고 사라질 때마다 자동으로 조절한다.
각각의 테이블 뷰마다 서브 클래스로 UITableViewController를 만들어줘야 한다. UITableViewController를 초기화할 때 테이블 뷰의 스타일을 반드시 정해줘야 하는데 스타일에는 plain, grouped가 있다. 테이블을 채우기 위해 data source와 델리게이트 메서드를 override로 사용해야 한다. loadView()와 같은 다른 조상 클래스의 메서드도 override 할 수도 있지만 첫 번째 메서드 호출과 같이 사용해야 한다.
UITableViewController 생성자
init(style: UITableView.Style)
// 테이블 뷰 컨트롤러의 스타일을 초기화
init?(coder:NSCoder)
init(nibName: String?, bundle: Bundle)
// nib파일에 있는 테이블 뷰 컨트롤러 만든다
.
UITableViewController 프로퍼티
테이블 뷰 가져오기
var tableView: UITableView! { get set }
// 컨트롤러에 의해 제어되는 테이블 뷰를 반환한다.
테이블 동작 바꾸기
var clearsSelectionOnViewWillAppear: Bool { get set }
// 테이블 뷰가 처음 화면에 나타날 때 이 프로퍼티가 true라면 선택된 셀이 없도록 초기화시켜준다.
테이블 뷰 리프레시 하기
var refreshControl: UIRefreshControl? { get set }
// 테이블 내용을 업데이트 해준다.
'iOS > iOS_Documents' 카테고리의 다른 글
[iOS 앱개발 프로그래밍] UIKit - Table View - UITableView (0) | 2020.07.18 |
---|---|
[iOS 앱개발 프로그래밍]UIKit - Table View - UITableViewDelegate (1) | 2020.07.18 |
[iOS 앱개발 프로그래밍] UIKit - Table View - UITableViewDataSource (0) | 2020.07.18 |
[iOS 앱개발 프로그래밍] UIKit - Table View - UITableViewCell (0) | 2020.07.18 |
[iOS 앱개발 프로그래밍] Table View (테이블 뷰) (0) | 2020.07.18 |
- Total
- Today
- Yesterday
- 자료구조
- BFS
- Publisher
- 아이폰
- OS
- 프로그래밍
- OSTEP
- Xcode
- Swift
- 백준
- 스위프트
- 테이블뷰
- 코딩테스트
- Combine
- 코테
- 동시성
- DP
- 앱개발
- pattern
- document
- System
- IOS
- 문법
- design
- operator
- 알고리즘
- operating
- Apple
- mac
- dfs
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |