Uploaded November 2012 | Updated September 2026, 2 weeks ago
Subscribe to our channel here for notifications on new video trainings. For more videos on technology, visit our website at http://www.techytube.com.
By pavel@techytube, for more from this author visit:
techytube.com/author/pavel
The UITableViewDataSource protocol is usually implemented by an ViewController class that mediates the application's data model for a UITableView object. The data source provides the table view object with the information it needs to construct and modify a table view.
As a representative of the data model, the data source supplies minimal information about the table view's appearance. The table-view object's delegate—an object adopting the UITableViewDelegate protocol—provides that information.
In the last video we've discussed about the required methods of the UITableViewDelegate protocol. There are also a couple of optional methods. For example in case of Grouped-Style table-views, we have sections, and each section may have a header and a footer.
To specify how many sections a table view should have, we implement the following method:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 2; // 2 should be replaced with the number of sections we need
}
To specify the title of each section in a table view, we implement the following method:
- (NSString *)tableView:(UITableView *)tableView
titleForHeaderInSection:(NSInteger)section
{
NSString *titleOfSection;
switch (section) {
case 0:
titleOfSection = @"First Section";
break;
case 1:
titleOfSection = @"Second Section";
// ... and so on, depending how many sections we must have
default:
titleOfSection = @"No Title";
break;
}
return titleOfSection;
}
For more, please visit Apple's online documentation at:
developer.apple.com/library/ios/#documentation/uikit/reference/UITableViewDataSource_Protocol/Reference/Reference.html
Subscribe to our channel here for notifications on new video trainings. For more videos on technology, visit our website at http://www.techytube.com.
By pavel@techytube, for more from this author visit:
techytube.com/author/pavel
The UITableViewDataSource protocol is usually implemented by an ViewController class that mediates the application's data model for a UITableView object. The data source provides the table view object with the information it needs to construct and modify a table view.
As a representative of the data model, the data source supplies minimal information about the table view's appearance. The table-view object's delegate—an object adopting the UITableViewDelegate protocol—provides that information.
In the last video we've discussed about the required methods of the UITableViewDelegate protocol. There are also a couple of optional methods. For example in case of Grouped-Style table-views, we have sections, and each section may have a header and a footer.
To specify how many sections a table view should have, we implement the following method:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 2; // 2 should be replaced with the number of sections we need
}
To specify the title of each section in a table view, we implement the following method:
- (NSString *)tableView:(UITableView *)tableView
titleForHeaderInSection:(NSInteger)section
{
NSString *titleOfSection;
switch (section) {
case 0:
titleOfSection = @"First Section";
break;
case 1:
titleOfSection = @"Second Section";
// ... and so on, depending how many sections we must have
default:
titleOfSection = @"No Title";
break;
}
return titleOfSection;
}
For more, please visit Apple's online documentation at:
developer.apple.com/library/ios/#documentation/uikit/reference/UITableViewDataSource_Protocol/Reference/Reference.html

![Working with UITableViewDataSource protocol in iOS Part1
Subscribe to our channel here for notifications on new video trainings. For more videos on technology, visit our website at http://www.techytube.com.
By pavel@techytube, for more from this author visit:
http://www.techytube.com/author/pavel
The UITableViewDataSource protocol is usually implemented by an ViewController class that mediates the applications data model for a UITableView object. The data source provides the table view object with the information it needs to construct and modify a table view.
As a representative of the data model, the data source supplies minimal information about the table views appearance. The table-view objects delegate—an object adopting the UITableViewDelegate protocol—provides that information.
The two required methods of the protocol provide the cells to be displayed by the table-view as well as inform the UITableView, and they should look as below:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 3;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @Cell;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
return cell;
}
We can also set the cells properties, for example:
cell.textLabel.text = [NSString stringWithFormat:@Cell %d, indexPath.row];
Many methods take NSIndexPath objects as parameters. UITableView declares a category on NSIndexPath that enables you to get the represented row index (row property) and section index (section property), and to construct an index path from a given row index and section index (indexPathForRow:inSection: class method). (The first index in each index path identifies the section and the next identifies the row.)
For more, please visit Apples online documentation at:
http://developer.apple.com/library/ios/#documentation/uikit/reference/UITableViewDataSource_Protocol/Reference/Reference.html Working with UITableViewDataSource protocol in iOS Part1](https://i.ytimg.com/vi/9GhpTYG1weA/mqdefault.jpg)








