I am trying to pass data from a tableViewController to a detail view via a segue upon selecting a cell. The segue works and prints the data I am requesting to the terminal, but no matter what var type I pick for the destination controller I get a "Cannot assign a value of type ..." error. Here is my tableViewController code:
import UIKit
import CoreData
class RoomTableViewController: UITableViewController {
var roomArray = [Rooms]()
var sendSelectedData = NSString()
let appDelegateObj : AppDelegate = UIApplication.shared.delegate as! AppDelegate
var managedObjectContext: NSManagedObjectContext? {
return (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
}
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
retrieveRooms()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
/
}
/
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return roomArray.count
}
let cellId = "roomCell"
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: cellId, for: indexPath) as! RoomTableViewCell
/
cell.configureCell(room:roomArray[indexPath.row])
return cell
}
override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete {
let room = roomArray[indexPath.row]
managedObjectContext?.delete(room)
(UIApplication.shared.delegate as! AppDelegate).saveContext()
do {
roomArray = try managedObjectContext!.fetch(Rooms.fetchRequest())
} catch {
print("Fetching Failed")
}
}
tableView.reloadData()
}
func retrieveRooms(){
fetchRoomsFromCoreData { (rooms) in
if let rooms = rooms{
self.roomArray = rooms
self.tableView.reloadData()
}
}
}
func fetchRoomsFromCoreData(completion: ([Rooms]?)->Void){
var results = [Rooms]()
let request: NSFetchRequest<Rooms> = Rooms.fetchRequest()
do {
results = try managedObjectContext!.fetch(request)
completion(results)
}catch {
print("Could not fetch Rooms from CoreData:\(error.localizedDescription)")
}
}
/
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "editSegue"{
let indexPath = self.tableView!.indexPath(for: sender as! UITableViewCell)!
let destVC = segue.destination as! RoomDetailTableViewController
print(self.roomArray[indexPath.row])
destVC.myData = self.roomArray[indexPath.row]
}
}
}
I am at odds with where I am going wrong :-{
Thanks in advance for any advice !