A table view controller is a sub-class of view controller that has a built-in table view where both delegate and data source refer to the class of the outlet.


By using a table view outlet, we can add a table view to any types of view controller or view. In doing so, we have to conform our owner class to both UITableViewDelegate and UITableViewDataSource.


By default XCode offers a few different types of cells. These are however quite basic and real application often needs a custom cell in which the developer can embed a variety of objects.


We use search controllers within a searchable view controller to find specific elements. Search controllers often have both a Search Bar and a Search Result Controller where we can view the results of the search.

In applying a search controller to a table view, we can filter the items in the table view directly.


Table views have a multitude of methods that help with their look, navigation, buttons, etc.


Table view cells can host a number of different buttons at their edit time. The default one however is only one.


Table views have a built-in refresh control that allows for re-reading the data model.


Table views are one of the most important outlets of iOS design. It’s hard to imagine an app without any table views. The default use of a table view can be viewed in the master/detail template.


Collection Views help us in arranging a number of items in many different formats such as a grid. They are popular outlets for situations when different objects in a list are accompanied by a picture. A prime example is the Photos app.


Similar to table views, collection views also allow us to have custom cells.


Unlike table views where a default swipe can delete a cell, in collection views, we have to devise our own delete function.


A primary feature of using collection views is the ability to drag and drop. I would recommend you read further on this topic as well: https://hackernoon.com/drag-it-drop-it-in-collection-table-ios-11-6bd28795b313


Collection Views also benefit from supplementary views in which you can add a number of functionalities.


A major strength of collection views is in their ability to lay the items out in different ways. Read Further about UI Collection View Layout at:

https://developer.apple.com/documentation/uikit/uicollectionviewlayout