사과
  • 애플 개발자 문서 한글 번역
  • App Frameworks
    • Foundation
      • 숫자, 데이터와 기본값
      • 문자열과 텍스트
      • 컬렉션
      • 날짜와 시간
      • 데이터 포맷
      • 작업 관리
        • Operation
        • OperationQueue
        • Timer
      • 리소스
        • Bundle
      • 파일 시스템
        • FileManager
      • Notification
        • NSKeyValueObserving
      • URL 로딩 시스템
        • 웹사이트 데이터를 메모리에 저장하기
        • URLSession
          • URLSessionConfiguration
            • urlCache
            • requestCachePolicy
          • configuration
        • URLSessionTask
        • URLRequest
        • URLResponse
        • HTTPURLResponse
        • 캐시 데이터에 접근하기
        • CachedURLResponse
        • URLCache
      • Object Runtime
        • NSValue
    • UIKit
      • UIKit으로 앱 개발
      • 앱과 환경
        • 앱 라이프 사이클 관리하기
        • 앱 실행에 대응하기
        • UIApplication
      • 문서, 데이터와 클립보드
      • Mac Catalyst
        • iPad 앱을 Mac 버전으로 만들기
        • 아이패드 앱의 맥 최적화
      • 뷰와 컨트롤
        • UIView
        • Table Views
          • UITableView
          • UITableViewCell
          • UIRefreshControl
        • UIScrollView
      • View Controllers
        • UIViewController
        • UITableViewController
        • UISearchController
      • 애니메이션과 햅틱
        • 프로퍼티 기반 애니메이션
          • UIViewPropertyAnimator
        • View controller 전환
      • 터치, 누르기, 제스처
        • UIResponder
        • UIKit 제스처 처리
        • 다중 제스처 인식기 조정
        • UILongPressGestureRecognizer
        • UIPanGestureRecognizer
          • maximumNumberOfTouches
          • minimunNumberOfTouches
          • translation(in:)
          • setTranslation(_:in:)
          • velocity(in:)
        • UIGestureRecognizer
    • Swift
      • 스위프트 표준 라이브러리
        • 메모리 직접 관리
          • 포인터 파라미터를 사용하는 함수 호출
          • UnsafePointer
          • UnsafeMutableRawBufferPointer
    • SwiftUI
      • 뷰와 컨트롤
        • View
        • Text
        • TextField
      • 뷰 레이아웃과 표현
      • 그리기와 애니메이션
      • 프레임워크 통합
      • 상태와 데이터 흐름
  • Graphics and Games
    • Core Animation
      • CALayer
      • CAAction
      • CAShapeLayer
      • CADisplayLink
    • Core Graphics
      • CGFloat
      • CGPath
  • App Services
    • Combine
    • WebKit
      • WKWebView
  • Media
    • AVFoundation
      • 시스템 오디오 상호작용
        • AVAudioSession
          • AVAudioSession.Category
            • ambient
            • multiRoute
            • playAndRecord
            • playback
            • record
            • soloAmbient
          • AVAudioSession.Mode
      • AVFoundation 자료형
  • Documentation Archive
    • 번들 프로그래밍 가이드
      • 번들에 대해
      • 번들 구조
    • Key-Value Observing 프로그래밍 가이드
    • Threading 프로그래밍 가이드
      • About Threaded Programming
      • Thread Management
  • ETC
    • Not Found
Powered by GitBook
On this page
  • Declaration
  • Summary
  • 개요
  • 주제
  • 테이블 뷰 컨트롤러 생성
  • 테이블 뷰 가져오기
  • 테이블 뷰 동작 설정
  • 테이블 뷰 새로고침
  • 관련 문서
  • 상속받은 대상
  • 준수하는 프로토콜
  • 같이 보기
  • 커스텀 뷰 컨트롤러
  1. App Frameworks
  2. UIKit
  3. View Controllers

UITableViewController

Table View 관리에 특화된 view controller

PreviousUIViewControllerNextUISearchController

Last updated 2 years ago

원문 출처

Declaration

class UITableViewController : UIViewController
@interface UITableViewController : UIViewController

Summary

SDKs

  • iOS 2.0+

  • tvOS 9.0+

Framework

  • UIKit

개요

인터페이스가 테이블 뷰 외의 다른 컨텐츠가 거의 없는 경우에는 UITalbeViewController를 서브클래싱하세요. 테이블 뷰 컨트롤러는 테이블 뷰의 컨텐츠를 관리하거나 변화에 대응하는 프로토콜을 처음부터 채택하고 있습니다. UITableViewController는 다음 동작을 구현합니다:

  • 스토리보드나 nib 파일에 저장되어 있는 테이블 뷰를 자동으로 로딩해옵니다. 이 테이블 뷰는 프로퍼티를 통해 접근할 수 있습니다.

  • 테이블 뷰의 dataSource와 delegate를 자기 자신(self)으로 설정합니다.

  • 메서드를 구현해서 테이블 뷰가 처음 나타날때 자동으로 데이터를 다시 불러옵니다. 테이블 뷰가 보일 때마다 항목이 선택해제되는데 (요청에 따라서 애니메이션을 비활성화 할 수 있습니다) 프로퍼티값을 바꿈으로써 이 동작을 바꿀 수 있습니다.

  • 메서드를 구현해서 테이블 뷰가 처음으로 나타날때 스크롤 인디케이터를 깜박입니다.

  • 메서드를 구현하여 사용자가 네비게이션 바의 Edit/Done 버튼을 탭하면 자동으로 편집 모드를 토글할 수 있습니다.

  • 스크린에 키보드가 나타나고 사라짐에 따라 테이블 뷰의 크기를 자동으로 조정합니다.

역자 주 설명이 어려운 듯 하여 추가 설명을 간략히 덧붙입니다. 즉 오버라이드를 할 경우 다음과 같이 구현해야 한다는 뜻입니다.

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 UICollectionViewController Collection View 관리에 특화된 view controller

  • protocol UIContentContainer view controller의 컨텐츠를 뷰 사이즈와 제약사항에 맞게 조정하는 메서드들

관리할 테이블 뷰마다 UITableViewController의 커스텀 서브클래스를 만드세요. 테이블 뷰 컨트롤러를 초기화 할 때에는 만드시 테이블 뷰의 스타일(일반 또는 그룹 테이블)을 지정해야 합니다. 또한 테이블을 데이터로 채우기 위해서 data source와 delegate 메서드도 반드시 오버라이드해야 합니다. 또는 다른 상위 클래스 메서드를 오버라이드 할 수 있지만 그럴 경우 상위 클래스의 구현을 우선적으로 호출하도록 해야 합니다.

class UIKit 앱의 View 계층구조를 관리하는 객체

https://developer.apple.com/documentation/uikit/uitableviewcontroller
tableView
viewWillAppear(_:)
clearsSelectonOnViewWillAppear
viewDidAppear(_:)
setEditing(_:animated)
loadView()
UIViewController