2010-12-12 28 views

Répondre

1

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.

+0

merci beaucoup , va essayer maintenant ... –

+0

a travaillé pour vous? – geekydevjoe

0

Pour Swift:

  1. Créer sortie pour UIPickerView en vue de table classe personnalisée:

    class MyTableViewCell: UITableViewCell, UIPickerViewDelegate, UIPickerViewDataSource { 
        @IBOutlet var myPickerView: UIPickerView! 
    } 
    
  2. 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 
        } 
    }