comment définir un délégué tableview
Je suis en train d'utiliser un UITableView
sans l'aide d'une plume et sans l'aide d'un UITableViewController
.
J'ai ajouté un UITableView
exemple à un UIViewController
Comme
mytable = [[UITableView alloc] initWithFrame:CGRectMake(22, 207, 270, 233)];
[mytable setDelegate:self];
[self.view mytable];
J'ai également ajouté le tableau suivant les méthodes de vue de mon UIViewController
(cut pour brevities saké)
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
Je reçois un message d'avertissement disant que mon UIViewController
ne pas mettre en œuvre UITableView
délégué protocole.
Ce qui est la façon correcte de le dire à la vue de la table où son délégué sont les méthodes?
(C'est ma première tentative d'essayer d'utiliser un UITableView
sans sélectionner la UITableTableview
contrôleur à partir du nouveau fichier d'options)
source d'informationauteur dubbeat
Vous devez vous connecter pour publier un commentaire.
Vous devez vous conformer à votre classe à la
UITableViewDelegate
etUITableViewDataSource
protocoles. (cellForRowAtIndexPath:
est dans leUITableViewDataSource
protocole )Ce faire, utilisez des crochets dans votre classe de définition d'interface:
La raison pourquoi vous obtenez cet avertissement maintenant et pas avant, quand vous étiez à l'aide d'un
UITableViewController
est parce queUITableViewController
déjà conforme à ces protocoles.Donc, par essence, un
UITableViewController
est juste une classe qui est conforme àUITableViewDelegate
etUITableViewDataSource
et a unUITableView
membre de l'instance.C'est assez bien.
Bien sûr, si vous n'êtes pas déjà sous-classement
UITableViewController
alors vous avez besoin pour configurer manuellement ledataSource
etdelegate
de laUITableView
:Vous devez également définir la source de données, délégué à l'individu:
ou, à parts égales:
L'avertissement est juste pour vous dire que votre
@interface
section doit déclarer que vous mettre en œuvre laUITableViewDelegate
protocole:Vous donner certainement, Pourquoi, parce que les deux méthodes de
UITableView
sont sousUITableViewDataSource
protocole.Dans Swift3 c'est la façon dont vous définissez
UITableViewDelegate
: