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 ...
Get iOS 5 Programming Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.