2009-07-31 6 views
1

Je souhaite créer une application qui combine une fonctionnalité de discussion. Ma question est la suivante: comment puis-je avoir un UITextField qui est toujours visible dans la même vue qu'un UITableView? La solution évidente serait de créer mon propre UIView ayant un UITableView et un UITextField en dessous, mais le UITableViewController ne semble pas aimer que je le fasse car il s'attend à ce que la sortie "view" connectée soit UITableView, essentiellement détruire mes plans.UITableView et UITextField toujours visible

Toute personne ayant une idée?

Répondre

1

N'utilisez pas UITableViewController. Après tout, c'est juste un contrôleur standard avec un UITableView en plein écran. Vous pouvez rouler le vôtre facilement.

Utilisez un UIViewController standard et mettez en œuvre les protocoles UITableViewDelegate et UITableViewDataSource (vous n'avez pas besoin d'implémenter toutes les méthodes - seulement les méthodes requises). Puis donnez-lui un UITableView en tant qu'iVar et définissez le délégué et la source de données sur soi. Taillez-le donc il ne prend que la moitié de l'écran et vos autres vues prennent l'autre partie. Vous pouvez disposer le tout dans IB ou créer et positionner view + table manuellement.

+0

Quand vous dites iVar, vous voulez dire IBOutlet? :) –

+0

Il peut s'agir d'un IBOutlet mais vous pouvez également le créer et le placer par programme. Probablement plus facile à modifier dans IB et assigné à un IBOutlet. – Ramin

1

Je suggère de coller une vue régulière entre votre contrôleur et vos plus petites "demi-vues". Cela a généralement éclairci les choses pour moi, ou au moins exposé quel pourrait être le problème.

+0

J'ai essayé, mais je ne peux pas utiliser un UITableViewController; il n'accepterait pas la vue régulière! –

0

Si vous n'avez pas besoin des fonctionnalités qui a fourni UITableViewController, que vous pouvez simplement utiliser UIViewController avec < UITableViewDataSource, UITableViewDelegate > protocoles. Ainsi, votre viewController principal acceptera tout type de vues.

+0

Cela aurait été génial si je pouvais contenir un UITableViewController dans mon nouvel UIViewController, et de déléguer les appels aux messages UITVC "normaux" au délégué. Toutefois, existe-t-il un moyen de déterminer si un message appartient à UITVDataSource ou UITVDelegate afin que je puisse les déléguer uniquement? Ou devra-t-il être codé en dur? –