-1
votes

Comment obtenir le contenu d'une ligne uableview sur la sélection d'un bouton de la ligne

J'ai une vue de table qui a un bouton et l'étiquette contenant une valeur de chaîne qui est peuplée à partir d'un appel d'API. Je veux obtenir la chaîne dans l'étiquette et transmettre à un autre contrôleur d'affichage chaque fois que je sélectionne le bouton. Comment puis-je obtenir les valeurs de chaîne?


1 commentaires

Ne recevez pas la chaîne de la cellule - obtenez-la de votre source de données. Utilisez un modèle de protocole / délégué ou de «fermeture de rappel». Un petit bouton de recherche de UitailViewCell vous donnera beaucoup de réponses, de blogs, de tutoriels, etc. pour vous aider à trouver la meilleure approche pour vos besoins spécifiques.


3 Réponses :


-1
votes

Vous devez utiliser utableviewelegate code> 's méthode dactSelectrowat code>

Pour cet exemple, je suppose que vous disposez d'une gamme de chaînes que vous utilisez pour définir les titres dans CellforatRat Code>: P>

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
                let string = data[indexPath.row]
}    
    //In case your data list contains another object, 
//you access the string property the same way   
(let string = data[indexPath.row].name) 


0 commentaires

-1
votes

Vous pouvez essayer ceci. Cette méthode obtient la position du bouton lorsqu'il est taraudé afin d'obtenir la cellule de la tableView. Ensuite, saisissez la chaîne que vous souhaitez et instanciez et appuyez sur votre contrôleur d'affichage suivant.

func buttonTapped(sender: AnyObject) {
    let buttonPosition = sender.convert(CGPoint.zero, to: tableView)
    let indexPath = tableView.indexPathForRow(at: buttonPosition)
    if indexPath != nil {
        cell = tableView.cellForRowAt(indexPath: indexPath)
        let myString = cell.label.text
        let nextVC = NextViewController.instance()
        nextVC.someString = myString
        navigationController.pushViewController(nextVc)
    }
}


0 commentaires

1
votes

En supposant que vous avez créé un prototype de cellule avec une étiquette et un bouton, vous avez connecté le bouton à un @ibaction dans votre classe de cellules, voici l'approche "Fermeture de rappel": < Pré> xxx


0 commentaires