iOS - Quelle est la différence entre la Vue de la Table et de la Table View Controller
Dans la Bibliothèque d'Objet de Xcode, il y a deux options que l'on peut utiliser pour créer la vue de la table - table et table-vue-contrôleur.
Quelle est la différence entre les deux et quand auraient-ils être utilisés ?
Vous devez vous connecter pour publier un commentaire.
Un TableViewController est un ViewController avec un TableView construit en. Ce sera le délégué des méthodes déjà déclaré et de l'installation. Ce CR est déjà un TableView délégué et de la source de données. Il ne peut pas être redimensionnée. À l'envers est la facilité d'utilisation, la baisse est très limitée flexibilité.
Un TableView est qu'une TableView (sous-classe de UIView). Il peut être ajouté à un ViewController et redimensionnée, utilisé à côté d'un autre point de vue en fonction de l'objet, etc. L'avantage est la flexibilité, l'inconvénient est que vous devez d'installation de la déléguée et source de données les méthodes de soi-même (à mon avis, vaut bien le temps pour obtenir la flexibilité).
Un autre point à souligner est que lors de l'utilisation de la nouvelle Statique TableView cellules (partie de iOS5), vous devez utiliser un TableViewController.
UITableView
avec d'autres contrôles sur le même écran lors de l'utilisation d'unUITableViewController
. Eh bien, sur l'autre main, on peut toujours utiliser letableHeaderView
et latableFooterView
partie pour d'autres contrôles.La
UITableViewController
est une sous-classe de laUIViewController
. Déjà, elle suppose que vous aurezUITableView
que votre rootView, vous avez déjà accès à partir du code d'une tableView (de soi.tableView). Il met en œuvre laUITableViewDataSource
et laUITableViewDelegate
protocole. Il vous donne également beaucoup de méthodes pour vous remplacer. Il vous permet de ne pas dépendre sur fichier XIB, parce que vous savez déjà ce que vous aurez (UITableView
comme un rootView).La
UITableView
est justeUIView
, normalement, vous devrez respecter les protocoles que j'ai mentionnés ci-dessus dans votreUIViewController
afin de remplir (source de données) et de travailler avec elle (délégué), et vous avez probablement de créer un IBOutlet pour votreUITableView
.D'une part la vitesse, mais vous n'êtes pas aussi souple comme un autre chemin. De l'autre vous avez le contraire.
InterfaceBuilder
dès que je peux, son plus rapide et il conserve le code propre. Bien sûr, vous pouvez déclarer unUITableView
dans votre code et il suffit de l'ajouter à votreUIView
, bien que je ne l'aime pas.