我希望UITableView
中的单元格包含String
数组。为了做到这一点,我在我的myArray
文件中设置了三个名为passedArrayData
,twodArray
和SecondTableVewController
的Type数组变量。 passedArrayData用于显示单元格。他们有string
数组。在我的firstTableViewController
中,我创建了;
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as UITableViewCell
let viewcontroller = SecondViewController()
let getData = UserDefaults.standard.array(key: "twoDarray") as! [[String]]
viewcontroller.myArray = getData[indexPath.row]
self.navigationController?.pushViewController(viewcontroller, animated: true)
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as UITableViewCell
cell.textLabel?.text = title[indexPath.row]
cell.textLabel?.font = UIFont(name: familyFont, size: 19)
cell.textLabel?.font = UIFont.systemFont(ofSize: 19)
return cell
}
这是 SecondViewController 代码;
override func viewDidLoad() {
super.viewDidLoad()
self.title = _titile
data()
tableView.register(UITableViewCell.self, forCellReuseIdentifier: cellIdentifier)
}
func data(){
if let items = UserDefaults.standard.array(forKey: "twodArray") as? [[String]] {
for item in 0...items.count {
index = item
let string = items[index]
passedArrayData = string
twodArray.append(passedArrayData)
}
}
}
func setTitleName(){
let alert = UIAlertController(title: ".....", message: "...", preferredStyle: .alert)
let save = UIAlertAction(title: "Save", style: .default, handler: {
(UIAlertAction) -> Void in
let textInput = alert.textFields![0] as UITextField
self.myArray.append(textInput.text!)
self.twodArray.append(self.myArray)
let saveData = UserDefaults.standard
saveData.set(self.twodArray, forKey: "twodArray")
saveData.synchronize()
DispatchQueue.main.async {
() -> Void in
self.tableView.reloadData()
}
})
let cancel = UIAlertAction(title: "Cancel", style: .cancel, handler: nil)
alert.addTextField(configurationHandler: {
(textField : UITextField!) -> Void in
textField.placeholder = "...."
})
alert.addAction(save)
alert.addAction(cancel)
self.present(alert, animated: true, completion: nil)
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as UITableViewCell
cell.textLabel?.text = myArray[indexPath.row]
cell.textLabel?.font = UIFont(name: familyFont, size: 19)
cell.textLabel?.font = UIFont.systemFont(ofSize: 19)
return cell
}
我不知道如何让每个选定的单元格存储String
数组。例如,当您单击一个单元格并转到SecondTableViewController
,您可以在UITextField
处存储文本,并且让我们通过在{{1}中输入字符串五次来制作五个单元格}}。当你回到UITextField
控制器并点击另一个单元格时,除了存储一些文本之外什么都没有。
我想要完成的是;
FirtsTableView
为我的代码正确保存数据。我无法解决许多错误。如果您知道我的意思并希望实现,那么制作适用于此的代码非常有用。
你的帮助对我来说太大了。 感谢