Swift3:如何在 UITableViewCell 中保存 UITextView 数据

Swift3: How to save UITextView data in UITableViewCell

如何在UITableViewCell中分别保存UITextView个数据?我有两个文件,一个是 TableViewControllerdescViewController。在TableViewController中存储了一个单词数组,每个单元格都连接到descViewController,其中设置了一个UITextView。我想在每个单元格中保存文本数据。我怎么能做到?以下是我的尝试,几乎成功了

- 在我的 descViewController 中;

@IBOutlet weak var myLabel: UILabel!
var passedValue = ""
var passedText = ""
@IBOutlet weak var myTextView: UITextView!

在viewDidLoad里面descViewController

myTextView.delegate = self
myTextView.text = passedText
myTextView.font = UIFont(name: "times new roman", size: 15)
myLabel.text = passedValue

- 在我的 TableViewController 中;

  func textData() -> String {

    if let txt = textViewUserDefaults.object(forKey: "txtData") as? String {
       return txt
    }
    return ""
}

  override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    // Get Cell Label
    let indexPath = tableView.indexPathForSelectedRow;
    let currentCell = tableView.cellForRow(at: indexPath!) as UITableViewCell!;
    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let viewController = storyboard.instantiateViewController(withIdentifier: "desc") as! descViewController

    viewController.passedValue = (currentCell?.textLabel?.text)!
    viewController.passedText = textData()
    let navController = UINavigationController(rootViewController: viewController)
    self.present(navController, animated: false , completion: nil)
}

我创建了这个方法。单击每个单元格时的目的地是descViewController,我准备了passedTextpassedValue。这个passedValue是一个UIlable。这个标签是为了一个String显示在descViewController这个结果是成功的。然而,尽管我的文本视图数据已成功传递,但每个单元格数据都将保持相同的值。例如,如果我写了类似 "Today is a sunny day!" 的内容,保存它,当我单击另一个单元格打开 descViewController 时,结果在我的文本视图中是 "Today is a sunny day!"。这是我现在遇到的麻烦。我为存储数据编写的代码如下; textViewUserDefaults是我用UserDefaults.Standard设置的名字。

textViewUserDefaults.set(self.myTextView.text, forKey: "txtData")

我想让每个单元格都包含每个值。你能给我提供成功运行的代码吗?

谢谢

 let YOURARRAYNAME : NSMutableArray = NSMutableArray()

当用户输入一些文本并提交时,然后将该文本添加到您的数组中

YOURARRAYNAME.addObject(YOURTEXT)

在这个方法中

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

你有 tableview 单元格索引路径,所以当你想传递数据时

let viewController = storyboard.instantiateViewController(withIdentifier: "desc") as! descViewController

viewController.passedValue = YOURARRAYNAME.objectAtIndex(indexpath.row) // here you pass text and what is passedvalue i dont know so you check this
viewController.passedText = textData() // what is your passedtext and textdata() you also pass value here 
let navController = UINavigationController(rootViewController: viewController)
self.present(navController, animated: false , completion: nil)