3 votes

Récupérer le texte d'un tableau dans une UITableViewCell

Je suis nouveau dans le codage Swift et j'ai besoin d'aide.

J'ai un gros problème pour faire passer du texte d'un UITableViewCell à un autre viewcontroller.

J'ai créé un tableau mais il ne semble pas être copié dans le UITableViewCell ?

Voici mon code

Importer UIKit

var container = likedViewController()

classe likedViewController : UIInputViewController, UITableViewDelegate, UITableViewDataSource, icebreakerData { func textChoice(string : String ?) { }

var likedList: [String] = ["Hello there"]

@IBOutlet var tableView: UITableView!

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
            return likedList.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)

        cell.textLabel!.text = likedList[indexPath.row]
        return cell

    }

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        tableView.deselectRow(at: indexPath, animated: true)

        let row = indexPath.row
        self.textDocumentProxy.insertText(likedList[row])

    }

//-----------------

    func tableView(_ tableView: UITableView,
             heightForRowAt indexPath: IndexPath) -> CGFloat {
     // Make the first row larger to accommodate a custom cell.
        return 80
     }

@IBAction func ad(_ sender: Any) {
    container = likedViewController()
    container.likedList.append("I am another one")
        print("I am working")
}

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        tableView.dataSource = self
        tableView.delegate = self
    }
func hey (){
    let selectionVC = storyboard?.instantiateViewController(withIdentifier: "KeyboardViewController") as? KeyboardViewController
    selectionVC?.iceBreakerDataDelegate = self
}

}

-1voto

Shamas S Points 5760

Dans votre func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) vous pouvez alors créer le nouveau VC et le pousser vers votre UINavigationController.

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    tableView.deselectRow(at: indexPath, animated: true)

    let row = indexPath.row
    self.textDocumentProxy.insertText(likedList[row])

    // if this is your destination VC
    let selectionVC = storyboard?.instantiateViewController(withIdentifier: "KeyboardViewController") as? KeyboardViewController

    // hand over the data
    selectionVC?.iceBreakerDataDelegate = self
    navigationController?.pushViewController(selectionVC, animated: true)

    }

Dans le cas où vous n'utilisez pas un NavigationController vous pouvez simplement présenter le viewcontroller. self.present(selectionVC, animated: true, completion: nil)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X