J'ai Table View Contrôleur et classe séparée qui gère pour moi tableviewcell. À l'intérieur de la cellule de tableview j'ai une vue d'ensemble. Comment implémenter délégué et datasource pour pickerview qui est dans la classe tableCell mais mes fonctions de délégué dans le contrôleur tableview?UIPickerView + TableViewCell + délégués et source de données
Répondre
Vous pouvez faire en sorte que votre contrôleur tableView définisse une propriété sur les cellules tableview à mesure qu'elles sont créées, indiquant qu'il s'agit du délégué et de la source de données.
Sur la classe tableviewcell que vous avez créée, ajoutez simplement une propriété qui est une instance de votre contrôleur tableview. Comme
@property (nonatomic, retain) MyTableViewController * pickerDelegate;
Ensuite, dans votre cellForRowAtIndexPath vous pouvez définir cette propriété à l'auto
cell.pickerDelegate = self;
Vous devrez peut-être également définir une sorte propriété supplémentaire comme une étiquette pour distinguer entre chaque cellule. Je pense qu'une autre propriété sur la tableviewcell ferait comme un NSIndexPath.
Pour Swift:
Créer sortie pour UIPickerView en vue de table classe personnalisée:
class MyTableViewCell: UITableViewCell, UIPickerViewDelegate, UIPickerViewDataSource { @IBOutlet var myPickerView: UIPickerView! }
Ajouter délégué et source de données dans "cellForRowAtIndexPath" dans ViewController:
class myViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource, UITableViewDelegate, UITableViewDataSource { func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("myCell") as! MyTableViewCell cell.myPickerView.dataSource = self cell.myPickerView.delegate = self return cell } }
merci beaucoup , va essayer maintenant ... –
a travaillé pour vous? – geekydevjoe