Je souhaite transmettre les données d'étiquette de texte de cellule de table de la classe swift à la classe objective c. En classe rapide, je l'ai fait ce qui suit,Comment transmettre des données de chaîne de la classe swift à la classe objective c à l'aide de la notification
class NewsViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var newsTableView: UITableView!
var myVC:NewsDetailsViewController!
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
print("selected index :",indexPath.row)
let selectedCell = tableView.cellForRow(at: indexPath)
print("did select and the text is \(selectedCell?.textLabel?.text)")
myVC.passedValue = selectedCell?.textLabel?.text
print("text label value: ", myVC.passedValue)
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "PostQuestion"), object: myVC.passedValue)
self.present(myVC, animated: true , completion: nil)
}
Maintenant, je veux recevoir ces données de chaîne avec mon autre contrôleur qui est une classe objective c. Merci de guider.
si possible puis passer chaîne avec la méthode 'prepareForSegue' sinon vous pouvez utiliser' NSUserDefaults' –
Suis pas usi Tout segue et NSUserDefaults est limité dans mon projet. Donc je veux dans le centre de notification. – user579911
Vous devez utiliser le dictionnaire 'userInfo' pour transmettre des données et utiliser' self' (l'expéditeur) comme paramètre pour 'object'. Est-ce que myVC.passedValue' est la bonne valeur ou ne devriez-vous pas utiliser myVC.passedValue'? – clemens