Je souhaite modifier le texte d'étiquette de toutes les cellules dans une vue de table dans ios en cliquant sur un bouton qui ne fait pas partie de la vue de table. J'ai essayé de rechercher de la documentation sur Internet mais je n'ai pas encore trouvé de solution.

-1
rajvir singh 25 janv. 2017 à 10:03

5 réponses

Meilleure réponse

Dans l'action du bouton, vous devez modifier votre source de données, puis appeler tableView.reloadData() qui rechargera la table en utilisant la source de données mise à jour.

1
Nikos M. 25 janv. 2017 à 07:14

Option 1:

Vous devez maintenir le tableau pour selectedIndexPath, une fois que vous cliquez sur un bouton, vous pouvez ajouter tout l'Indexpath au tableau.

Option 2: Vous avez une variable booléenne qui peut être gérée pour afficher la sélection dans tableView.

0
Arasuvel 25 janv. 2017 à 07:15

// Salut, essayez comme ça

func buttonClik(sender: UIButton) {
     sender.selected = !sender.selected
      tblView.reloadData()
}

set text of label based on button selection as follows 
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath:  NSIndexPath) -> UITableViewCell {
    if btn.selected {
      //give text of label on selection state of button
    } else {
       //give text of label on normal state of button
    }
}
0
Andey Satyanarayana 25 janv. 2017 à 07:15

Var isSelected = false

@IBAction func yourButtonAction(sender:UIButton)
{
    isSelected = True
    tableview.reloadData()
       
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
     let cell = tableView.dequeueReusableCellWithIdentifier(“YourCellIdentifier”, forIndexPath: indexPath) as! YourCell

    if isSelected
    {
            // Set your text here
    }
    else
    {
        // Set default value
    }
}


if you want to change text to previous state when user tap again on button then use.

@IBAction func yourButtonAction(sender:UIButton)
{
    sender.selected = !sender.selected
    isSelected = sender.selected
    tableview.reloadData()
}
1
Chanchal Warde 25 janv. 2017 à 07:19

Créez une source de données pour tous les éléments contenus dans tableview, puis après l'avoir modifié, rechargez simplement toutes les données ...

Par exemple vous avez 3 articles:

let item1 = "A"
let item2 = "B"
let item3 = "C"

let tableViewItems = [item1, item2, item3]

func tableView(cellForRowAtIndexPath..., indexPath ... ) {
   // bind your custom datasource to tableview
   let cell = ...
   let item = tableViewItems[indexPath.row]
   cell.title = item
}

Ensuite, vous avez l'action de votre bouton:

func didPressModifyAllButton() {
   for item in tableViewItems {
      // here you can modify your items
      item = "Modified ..."
   }

   tableView.reloadData()
}
0
Kristijan Delivuk 25 janv. 2017 à 07:15