Vous devez simplement définir la source de données et déléguer les propriétés de votre UITableView aux objets que vous souhaitez utiliser pour ces rôles. Assurez-vous que votre nouvelle classe implémente les protocoles UITableViewDelegate et UITableViewDataSource dans son fichier d'en-tête:
@interface MyTableDelegate : NSObject <UITableViewDelegate, UITableViewDataSource>
Si vous allouez cet objet dépend de l'architecture de votre application. L'objet pourrait être contenu dans un fichier NIB ou il pourrait être attribué en même temps que vous allouez le contrôleur de table ou dans la méthode viewDidLoad du contrôleur qui alloue votre table:
// Create the delegate object and retain a reference to it
MyTableDelegate *tableDelegate = [[MyTableDelegate alloc] init];
self.tableDelegate = tableDelegate;
Ensuite, par exemple, si vous utilisent un contrôleur de navigation, vous pourriez donc quelque chose comme ceci pour créer votre table et le pousser sur la pile:
// Create the table view controller
MyTableViewController *viewController = [[MyTableViewController alloc] initWithNibName:@"MyTableView" bundle:nil];
// Set the delegate and data source
viewController.tableView.delegate = tableDelegate;
viewController.tableView.dataSource = tableDelegate;
// push the table view controller onto the naviagtion controller stack
[[self navigationController] pushViewController:viewController animated:YES];
// Clean up resources
[viewController release];
le must de classe MyTableDelegate contient au minimum les méthodes obligatoires:
tableView:cellForRowAtIndexPath
tableView.numberOfRowsInSection