J'ai actuellement un ViewController
avec un TableView
à l'intérieur appelé SelectedListItemsViewController
. Ce ViewController
TableView
est rempli par une classe de cellule personnalisée appelée SelectedListItemsTableViewCell
.Comment utiliser UIStepper pour modifier une propriété dans un objet de modèle de domaine?
J'ai un tableau d'objets de modèle de domaine appelé selectedListItems
, dont chacun a plusieurs propriétés. Le SelectedListItemsTableViewCell
remplit le TableView
avec la propriété listItem
de cet objet indexPath.row
, et chaque ligne a un UIStepper
avec un UILabel
à côté de lui (pour l'instant) montre UIStepper.value
pour chaque ligne. Idéalement, l'étiquette reflétera la propriété listItemWeight
de chaque ligne et la modifiera en incrémentant ou décrémentant cette ligne.
C'est ma cellule personnalisée:
class SelectedListItemsTableViewCell: UITableViewCell {
@IBOutlet var selectedListItemLabel: UILabel!
@IBOutlet weak var listItemWeightLabel: UILabel!
@IBOutlet weak var stepperControl: UIStepper!
@IBAction func stepperValueChanged(sender: UIStepper) {
listItemWeightLabel.text = Int(sender.value).description
}
}
Et dans mes ViewController
« s cellForRowAtIndexPath
, j'ai configuré la cellule comme ceci:
// Configure the cell...
cell.selectedListItemLabel.text = selectedListItems[indexPath.row].listItem
cell.listItemWeightLabel.text = "\(selectedListItems[indexPath.row].listItemWeight)"
qui charge parfaitement la propriété listItem
et la listItemWeight
propriété s'affiche correctement, mais dès que j'augmente ou décrémente sur le UIStepper
il est foiré. Comment associer correctement mon UILabel et UIStepper au [indexPath.row].listItemWeight
?
Merci pour la contribution, Nathan! Je ne suis pas capable de mettre à jour listItem dans la méthode où UIStepper met à jour (stepperValueChanged) puisque, pour autant que je sache (même si cela ne dit pas grand chose depuis que je suis très débutant en programmation), il faut un indexPath.row pour accéder propriétés de cet objet particulier, que je n'ai pas dans la classe de cellule personnalisée. Ai-je tort sur ce front? Chaque fois que j'essaie d'explorer les propriétés de selectedListItems, j'obtiens l'avertissement "Value of type '[RealmListItem]' n'a pas de membre 'listItemWeight'" – MachTurtle
si votre 'SelectedListItemsTableViewCell' a une référence à l'élément listItem (de ce tableau) vous devriez être capable de le mettre à jour. –
Excuses s'il s'agit d'une question horriblement naïve, mais comment pourrais-je faire référence à mon tableau (c'est global) de mon 'SelectedListItemsTableViewCell' d'une telle manière que je pourrais mettre à jour l'objet dans les propriétés de cette rangée? J'ai cherché autour pendant les 20 dernières minutes mais Google interprète «référence» d'une manière différente que nous entendons ici. – MachTurtle