O'Reilly logo

iOS 5 Programming Cookbook by Vandad Nahavandipoor

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

3.2. Assigning a Delegate to a Table View

Problem

You have decided to assign a delegate to a table view.

Solution

Assign an object that conforms to the UITableViewDelegate protocol to the delegate property of your table view:

- (void)viewDidLoad{
  [super viewDidLoad];
  
  /* We want a full-screen Table View which is as
   big as the View attached to the current
   View Controller */
  CGRect tableViewFrame = self.view.bounds;
  
  self.myTableView = [[UITableView alloc]
                      initWithFrame:tableViewFrame
                      style:UITableViewStylePlain];
  
  self.myTableView.delegate = self;
  
  /* Add this Table View to our View */
  [self.view addSubview:self.myTableView];
  
}

This code assigns the current object as the delegate of the table view. myTableView is a property of type UITableView belonging to the calling view controller. The statement is embedded in the viewDidLoad method, because the calling object here is an instance of UIViewController, and this method is the right place to put the statement so that the association is made just once.

Discussion

The UITableView class defines a property called delegate. The table view should assign to this property an object that conforms to the UITableViewDelegate protocol. In other words, this delegate must promise to reply to the messages defined in this protocol, which are sent to the delegate object by the table view itself. Think of the delegate of a table view as an object that listens to various events sent by the table view, such as when a cell is selected or when the table view wants ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required