我正在寻求一些澄清,希望有人能帮助我理解。
我的应用程序是完全以编程方式构建的,我根本不使用故事板,因此我没有任何分段。
我正在尝试通过tableView的didSelectRowAt
方法将CoreData对象从一个VC传递到另一个VC。
我正确地在indexPath处返回了对象,但似乎在将该对象传递给新VC时遇到了问题。
在此代码提取中,我目前唯一关心的是获取CoreData对象,然后我可以访问所有相关数据。
即:当地方通过时,我想打印名称,纬度,经度。
这将允许我继续使用该应用程序并在新VC中使用该数据。
提前致谢。
// PlacesVC
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let placeOnMap = fetchedResultsController.object(at: indexPath)
let destVC = MapVC()
destVC.placePassed = placeOnMap
self.navigationController?.pushViewController(destVC, animated: true)
print(placeOnMap.placeName!)
}
// MapVC
import UIKit
class MapVC: UIViewController {
var placePassed = PlaceEntity?
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .green
// print(placePassed.placeName!)
// print(placePassed.latitude!)
// print(placePassed.longitude!)
}
}
更新信息
在PlacesVC()
中,发生以下情况。
如果我选择点击let placeOnMap
,我会......
Declaration: let placeOnMap: PlaceEntity
代码行... destVC.placePassed = placeOnMap
会出现以下错误。
无法指定类型' PlaceEntity'的值输入' PlaceEntity?.Type'
在MapVC()
如果我选择点击placePassed
var,我会......
Declaration: let placePassed: PlaceEntity?.Type
此外,这行代码...... var placePassed = PlaceEntity?
会出现以下错误。
类型名称后的预期成员名称或构造函数调用
如果我取消注释destVC上的print语句,则会弹出此错误...
输入' PlaceEntity?'没有会员' placeName'
我认为我的问题与我在接收VC上设置var的方式有关,因为它将.Type添加到声明的var。
这是我不理解的部分。感谢