如何分别在UITextView
中保存UITableViewCell
数据?我有两个文件,一个是TableViewController
和descViewController
。在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
我准备passedText
和passedValue
的位置。此passedValue
是UIlable
。这个标签是String
显示在descViewController
这个结果是成功的。但是,虽然我的文本视图数据成功传递,但每个单元格数据将保持相同的值。例如,如果我写的是"今天是晴天!",保存它,当我点击另一个单元格打开descViewController
时,结果是"今天是阳光灿烂的日子!"在我的文本视图中。这是我现在遇到的麻烦。我写的用于存储数据的代码如下: textViewUserDefaults
是我使用UserDefaults.Standard
设置的名称。
textViewUserDefaults.set(self.myTextView.text, forKey: "txtData")
我想让每个单元格保存每个值。你能为我提供成功运作的代码吗?
谢谢
答案 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)