2014-07-05 3 views
0

저는 Swift에 익숙하지 않습니다. 왜 Obj-C에서 번역 한이 코드 조각이 여기에서 작동하지 않는지 알고 싶습니다.VC 사이 스위프트 패스 데이터

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
     if segue.identifier == "scoreDetail" { 
      let indexPath = self.tableView.indexPathForSelectedRow() 
      let object = self.fetchedResultsController.objectAtIndexPath(indexPath) as NSManagedObject 

      let itemVC: ScoreVC = segue.destinationViewController as ScoreVC 
      itemVC.detailItem = object 
     } 
    } 

다음은 스토리 보드입니다. 난 내가 스위프트와는 아무 상관이없는 UITableViewCell

enter image description here

답변

2

문제를 클릭하자마자 나는이 오류를 얻을 UINavigatorController enter image description here

에 셀에서 Show Replace SEGUE 있습니다. destinationViewController는 ScoreVC가 아닌 내비게이션 컨트롤러이므로, 번역 한 코드는 (동일한 설정이있는 경우) 작동하지 않아야합니다. 이 형식은 다음과 같아야합니다.

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
     if segue.identifier == "scoreDetail" { 
      let indexPath = self.tableView.indexPathForSelectedRow() 
      let object = self.fetchedResultsController.objectAtIndexPath(indexPath) as NSManagedObject 

      let nav : UINavigationController = segue.destinationViewController 
      let itemVC: ScoreVC = nav.topViewController as ScoreVC 
      itemVC.detailItem = object 
     } 
    } 
+0

나는이 문제를 완전히 인식했습니다. 대단히 감사합니다. – r4id4