2016-07-23 2 views
1

UITableView에서 UIViewController로 데이터를 전달하여 자세한 정보를 표시하려고합니다.UITableView에서 UIViewController로 segue로 데이터 전달하기

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 

     if segue.identifier == "PassDetail" { 

      let vc = segue.destinationViewController as! ToDoListDetailViewController 
      let customIndexPath = self.tableView.indexPathForSelectedRow 
      vc.titleString = userList[userList.count - customIndexPath!.row - 1].Title 
      vc.descriptionString = userList[userList.count - customIndexPath!.row - 1].Description 

     } 

    } 

나는 segue push depricated을 만들고 적절한 식별자를 설정했습니다.

실행 후 아무런 변화가 없습니다. 충돌이 발생하지 않고 인쇄 방법을 설정하려고 시도했지만 셀을 탭하면 아무 것도 호출되지 않습니다.

필자의 문자열에 print 문을 전달할 값이 있는지보고 싶었고 print 문에서 음성을들을 수 없었습니다.

데이터가없는 경우에도 셀을 탭하면 앱이 중단되어야합니다. 그러나 그렇지 않습니다.

show과 같은 다른 섹터를 사용해 보았지만 트릭을 수행하지 못했습니다.

코드에서 뭔가 빠졌습니까?

솔루션

나는 해결책을 찾아 냈다.

이것이 어떻게 작동하는지 이해하는 방법입니다. 위 코드는 데이터를 전달하지만 다음 viewcontroller로 푸시하지 않습니다.

이 문제를 해결하기 위해 didelectRowAtIndexPath 메서드를 사용하고 내 문자열을 설정했습니다.

아래는 제 전체 작동 코드입니다.

재정의 FUNC의있는 tableView (있는 tableView : jQuery과, didSelectRowAtIndexPath indexPath : NSIndexPath) {

contentTitle = "Some title" //contentTitle is a global variable 

    tableView.deselectRowAtIndexPath(indexPath, animated: true) 
    let row = indexPath.row 
    performSegueWithIdentifier("PassData", sender: row) 

} 
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 

    if segue.identifier == "PassData" { 

     let vc = segue.destinationViewController as! ToDoListDetailViewController 
     vc.titleString = contentTitle //setting the titleString created from my ToDoListDetailViewController and setting it to contentTitle 

    } 

} 
+0

우선 여부입니다. vc 변수를 설정하고 무슨 일이 일어 났는지보고 난 후에 print 문을 써라. 또한 SEGUE 식별자가 나는 것을했고, 나는 다시 내 인쇄 문에서 듣지 않았다 올바른 –

+0

@The_Curry_Man 있는지 확인합니다. 내 여기서 userList에 값이없는 경우에도, 적어도 충돌해야하지만 그렇지 않습니다. –

답변

1

내가 의심 바로는, 당신은 프로그래밍 방식 SEGUE을 밀어하지 않았습니다.

, here에서 힌트를 복용 당신은 당신의 didSelectRowAtIndexPath 방법에서 SEGUE를 밀어 않았다? 어떤 값을 가지고 ".Title [1! - - customIndexPath 셀에만 userList.count] userList 여기서"당신이 시도하고 볼 수

+0

원래 나는 segue를 밀려고했지만, 적절한 방법은 segue를 보여주는 것이다. 하지만 그건 효과가 없었습니다. –

+0

괜찮 았지만 didSelectRowAtIndexPath 메소드에서 수동으로 수행 했습니까? –

+0

흠, 아니, 실제로 그런 것은 없습니다. 내가 기회가 생기면 다시 너에게 갈거야. –

관련 문제