Swift3:如何在UITableViewCell

时间:2016-10-21 05:51:27

标签: ios uitextview swift3 tableviewcell

如何分别在UITextView中保存UITableViewCell数据?我有两个文件,一个是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的位置。此passedValueUIlable。这个标签是String显示在descViewController这个结果是成功的。但是,虽然我的文本视图数据成功传递,但每个单元格数据将保持相同的值。例如,如果我写的是"今天是晴天!",保存它,当我点击另一个单元格打开descViewController时,结果是"今天是阳光灿烂的日子!"在我的文本视图中。这是我现在遇到的麻烦。我写的用于存储数据的代码如下: textViewUserDefaults是我使用UserDefaults.Standard设置的名称。

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

我想让每个单元格保存每个值。你能为我提供成功运作的代码吗?

谢谢

1 个答案:

答案 0 :(得分:0)

 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)