A controller object that manages a table view.


UITable​View​Controller implements the following behaviors:

  • If a nib file is specified via the init(nib​Name:​bundle:​) method (which is declared by the superclass UIView​Controller), UITable​View​Controller loads the table view archived in the nib file. Otherwise, it creates an unconfigured UITable​View object with the correct dimensions and autoresize mask. You can access this view through the table​View property.

  • If a nib file containing the table view is loaded, the data source and delegate become those objects defined in the nib file (if any). If no nib file is specified or if the nib file defines no data source or delegate, UITable​View​Controller sets the data source and the delegate of the table view to self.

  • When the table view is about to appear the first time it’s loaded, the table-view controller reloads the table view’s data. It also clears its selection (with or without animation, depending on the request) every time the table view is displayed. The UITable​View​Controller class implements this in the superclass method view​Will​Appear(_:​). You can disable this behavior by changing the value in the clears​Selection​On​View​Will​Appear property.

  • When the table view has appeared, the controller flashes the table view’s scroll indicators. The UITable​View​Controller class implements this in the superclass method view​Did​Appear(_:​).

  • It implements the superclass method set​Editing(_:​animated:​) so that if a user taps an Edit|Done button in the navigation bar, the controller toggles the edit mode of the table.

You create a custom subclass of UITable​View​Controller for each table view that you want to manage. When you initialize the controller in init(style:​), you must specify the style of the table view (plain or grouped) that the controller is to manage. Because the initially created table view is without table dimensions (that is, number of sections and number of rows per section) or content, the table view’s data source and delegate—that is, the UITable​View​Controller object itself—must provide the table dimensions, the cell content, and any desired configurations (as usual). You may override load​View() or any other superclass method, but if you do be sure to invoke the superclass implementation of the method, usually as the first method call.


Initializing the UITableViewController Object

init(style:​ UITable​View​Style)

Initializes a table-view controller to manage a table view of a given style.

Getting the Table View

var table​View:​ UITable​View!

Returns the table view managed by the controller object.

Configuring the Table Behavior

var clears​Selection​On​View​Will​Appear:​ Bool

A Boolean value indicating if the controller clears the selection when the table appears.

Refreshing the Table View

var refresh​Control:​ UIRefresh​Control?

The refresh control used to update the table contents.