2014-12-13 3 views
0

저는 Swift에서 App Development를 배우기 시작했습니다. 나는 홈 스크린에서 사용자가 프로파일이라고하는 버튼을 클릭하고 tableViewController에 이름 목록을 표시하는 응용 프로그램을 만들려고합니다. 사용자가 이름을 클릭하면 해당 사용자의 프로필이 viewController에 열립니다.TableViewController에서 행을 선택하고 ViewController를 엽니 다.

지금까지 어떤 방법으로 코드를 작성했는지, 사용자가 내 TableViewController에서 이름 목록을 클릭 한 다음 그 사람에 대한 viewController를 열 수있게하려면 어떻게해야할까요? 나는 이미 다른 viewController (DetailsViewController)를 만들고 TableViewController와 DetailsViewController 사이에 segue를 만들었습니다.

저는이 작업을 오랫동안 해오 고 있지만 행운을 찾지 못했습니다. 누군가가 올바른 방향으로 나를 가리킬 수 있다면 그것은 좋을 것입니다.

+0

질문의 범위가 너무 넓습니다. 여기에 많은 예제가 있습니다 (물론 아주 차선책으로 설명되어 있습니다). –

답변

1

세부보기 컨트롤러에 의 세그먼트를 만들어야합니다. 세부 컨트롤러에 데이터를 제공하려면 부모 컨트롤러에서 재정의하는 prepareForSegue에 설정할 수있는 속성 (예 : name)을 지정합니다.

override func prepareForSegue(segue: UIStoryboardSegue?, sender: AnyObject?) { 
    let cell = sender as UITableViewCell // or your cell subclass 
    let indexPath = self.tableView.indexPathForCell(cell) 
    let name = dataArray[indexPath.row] 
    // or something else depending on the structure of your data model 
    let controller = segue!.destinationViewController() as DetailViewController 
    controller.name = name 
} 

이제 자세히보기 컨트롤러는 전달 된 정보로보기를 채울 수 있습니다.

+0

당신의 대답은 제게 많은 도움이되었습니다! 비록 내가 아직도 배열 (dataArray)이 무엇을위한 것인지 혼란 스러울지라도. (그것은 그것이 무엇인지 알지 못한다고 말하고 있습니다.) 메서드 내에서 만들고 그것을 사용하면 NSIndexPath에 row라는 멤버가 없다는 것을 알 수 있습니다. (대답은 명백하게 보인다면 다시 미안하다.) – videoperson

+0

'dataArray'는 여러분의 데이터 모델을위한 프록시 일뿐입니다. 테이블에 표시되는 정보를 어딘가에 저장해야 인덱스 경로를 기반으로 각 행에 무엇을 넣을 지 알 수 있습니다. 인덱스 경로를 통해 동일한 로직을 사용하여 세부 정보를 채 웁니다. – Mundi