私は2つのtableViewをプロジェクトで実行しています。最初のtableViewから2番目のtableViewコントローラにsegue.Iを使用してデータを正常に渡しましたが、NSUserDefaultsを使用してsecondViewControllerに渡したデータを保存しようとしています。下記の私の部分のコード....SwiftのindexPathにTableView Arrayを保存する
まずVC:
var tableView: UITableView!
var DataArray = ["Bus","Helicopter","Truck","Boat","Bicycle","Motorcycle","Plane","Train","Car","S cooter","Caravan"]
var sendSelectedData = NSString()
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let indexPath = tableView.indexPathForSelectedRow!
let currentCell = tableView.cellForRow(at: indexPath) as UITableViewCell!
// print(indexPath)
// print(currentCell)
sendSelectedData = (currentCell!.textLabel?.text)! as String as NSString
performSegue(withIdentifier: "ShowDetails", sender: indexPath)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let selectedIndex = sender as! NSIndexPath
let currentCell = tableView.cellForRow(at: selectedIndex as IndexPath)!
self.sendSelectedData = (currentCell.textLabel?.text)! as String as NSString
if segue.identifier == "ShowDetails" {
let viewController = segue.destination as! SecondController
viewController.newItem = (self.sendSelectedData as String)
}
}
第二VC:
var NewArray = [""]
var newItem: String = ""
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
NewArray.insert(newItem, at: Array.count)
self.tableView?.beginUpdates()
// NewArray.append(newItem)
let defaults = UserDefaults.standard
defaults.object(forKey: "NewArray")
self.tableView?.endUpdates()
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as UITableViewCell
cell.textLabel?.text = NewArray[(indexPath as NSIndexPath).row] as String
return cell
}
func insertRowsAtIndexPaths(indexPaths: [AnyObject], withRowAnimation animation: UITableViewRowAnimation) {
}
func reloadRowsAtIndexPaths(indexPaths: [AnyObject], withRowAnimation animation: UITableViewRowAnimation) {
}
私はこの機能を達成するためにhttps://grokswift.com/uitableview-updates/の記事に従っています....
ありがとうございました。
ありがとうあなたのコードは素晴らしい、理解しやすいです。もう一度....ありがとうございます – Joe