DetailViewController의 Core Data 객체를 다른 View Controller로 전달하여 편집 할 수 있습니까?DetailViewController에서 다른 View Controller로 Core Data 객체 전달
다음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
}
}
을하지만 난 내 개체
편집
EDI에 전무를 얻을 수 MasterViewController DetailViewController로 이동에서
var editItem: MyValues? {
didSet {
// Update the view.
self.configureView()
}
}
과 detailItem은 DetailViewController에서 다음과 같이 설정됩니다 : t 항목은 EditViewController에 다음과 같이 설정되어
이var detailItem: MyValues? {
didSet {
// Update the view.
self.configureView()
}
}
감사합니다. 그 트릭을 할 것으로 보인다. 그러나 왜 내 코드가 작동하지 않았습니까? –
'editViewController'가 가리키는 부분을 생성 했어야합니다. 즉, segue 메커니즘의 일부로 생성 된 동일한 인스턴스/객체가 아닙니다. 즉, 두 개의 서로 다른 'EditViewController' 객체가 있었고 화면에보기를 넣을 데이터에 데이터를 전달하지 않았습니다. –
답장을 보내 주셔서 감사합니다. 다른 사람들이상의 할 수 있도록 귀하의 답변에이를 추가하도록 요청할 수 있습니까? 또한 당신은 내 클래스 안에 var로 만든 (editViewController) 그것을 가지고있다 ... –