【发布时间】:2016-08-19 15:47:40
【问题描述】:
有没有办法将 Core Data 对象从 DetailViewController 传递到另一个 View Controller 以允许编辑?
从 MasterViewController 导航到 DetailViewController:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showDetail" {
if let indexPath = self.tableView.indexPathForSelectedRow {
let myValue = myValues[indexPath.row]
let controller = (segue.destinationViewController as! UINavigationController).topViewController as! DetailViewController
controller.detailItem = myValue
controller.navigationItem.leftBarButtonItem = self.splitViewController?.displayModeButtonItem()
controller.navigationItem.leftItemsSupplementBackButton = true
}
}
}
然后从 DetailViewController 到 EditViewController:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showEdit" {
let controller = editViewController
controller.editItem = detailItem
controller.navigationItem.leftBarButtonItem = self.splitViewController?.displayModeButtonItem()
controller.navigationItem.leftItemsSupplementBackButton = true
}
}
但我的对象是 nil
编辑
EditViewController上的编辑Item是这样设置的:
var editItem: MyValues? {
didSet {
// Update the view.
self.configureView()
}
}
而detailItem在DetailViewController中是这样设置的:
var detailItem: MyValues? {
didSet {
// Update the view.
self.configureView()
}
}
【问题讨论】: