我想在NSManagedObject
之间传递ViewControllers
。
为此我使用全局变量。
在我的第一个viewcontroller
中,在顶部(作为全局变量):
var choosenItem : NSManagedObject? = nil
我构建了我的表视图,我有这个:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let choosenOne = listOfLands[indexPath.row]
let choosenItem = listOfLands[indexPath.row]
let viewController = storyboard?.instantiateViewController(withIdentifier: "ViewController2")
self.navigationController?.pushViewController(viewController!, animated: true)
print(choosenOne.objectID)
print(choosenItem.objectID)
}
当我打印所选择的对象时,我得到了它们。所以我认为在ViewController
中一切正常。
在ViewController2中我有:
override func viewDidLoad() {
print(thatLand?.objectID) //result is nil
}
现在我不确定为什么我会在第二个ViewController
中获得nil。
有没有办法像这样传递NSManagedObject
?
答案 0 :(得分:1)
您需要将choosenItem
分配给thatLand
的{{1}}属性,同时您需要明确地将ViewController2
转换为UIViewController
。< / p>
ViewController2