2013-04-27 1 views
0

tableVIew:didSelectRowAtIndexPath:prepareForSegue:sender:의 차이점을 이해합니다. 또한 셀을 가볍게 두드리면 새보기를 표시하는 데이 두 가지를 모두 사용할 수 있습니다. prepareForSegue:sender:이 아닌 tableView:didSelectRowAtIndexPath:을 선택할 수있는 유스 케이스가 있습니까? 그렇다면 사용 사례는 무엇입니까?유스 케이스의 경우 prepareForSegue보다는 tableView : didSelectRowAtIndexPath : sender :?를 선택할 수 있습니다.

+0

당신이 찾고있는 것의 예가 맞는지 모르겠지만 스토리 보드를 사용하지 않으므로'prepareForSegue'를 사용하지 않습니다 .... –

답변

5

역사적으로 tableView:didSelectRowAtIndexPath:은 iOS에서 처음부터 사용할 수있었습니다. prepareForSegue:은 최근 StoryBoard 아키텍처 전체에서 사용 가능했습니다. 따라서 요즘에는 prepareForSegue:이 바람직합니다.

실제 segue 기능은 prepareForSegue:sender:입니다. UITableViewCell이 segue를 시작하면 sender이 선택된 셀이됩니다. 따라서 tableView:didSelectRowAtIndexPath:에서와 같이 모든 것을 사용할 수 있습니다.

또한 다른보기 컨트롤러로 전환 할 때 세그멘트가 사용됩니다. 앱에서 셀 선택 항목을보기 컨트롤러로 전환 할 수없는 경우에는 세그먼트를 사용할 수 없습니다. 예를 들어, 앱에서 셀 선택 항목이 애니메이션 또는 직접보기를 통해 수행하려는 경우 tableView:didSelectRowAtIndexPath:

+0

여전히'tableView : didSelectRowAtIndexPath :'는 스토리 보드에서 segue를 구성 할 수 없기 때문에 동적 테이블 뷰에 있습니다. 이것은 여전히 ​​사용하는 유스 케이스 중 하나입니다. – lnafziger

+0

맞지 않습니다. 방금 Xcode에서 시도했습니다. 'DynamicPrototypes'로 구성된 UITableView는 셀에서 (세부 사항)보기 컨트롤러로의 연결을 허용했습니다. – GoZoner

+1

흠, 가능하지 않다는 것을 "결정"했을 때 다른 행에서 다른 segue를 얻으려고 시도했을 것입니다. 확실히하기 위해 테스트 해 주셔서 감사합니다. – lnafziger

1

'오래된 방법'을 사용합니다. 왜? 내가 익숙해 져서 나에게 의미가 있기 때문에. 그것은 처음부터 이용 가능했습니다. 한편, 최근에 추가 된 것은

prepareForSeque:입니다. 이전에 didSelectRowAtIndexPath을 사용했던 대부분의 사람들이 익숙해졌습니다. 작동하지 않으며, 게다가 이 파손되지 않으면 고치지 마십시오!

0

tableVIew:didSelectRowAtIndexPath으로 가면 선택한 항목이 표시됩니다. 선택한 항목을 알고있을 때 prepareForSegue:으로 전화하여 Storyboard를 사용하여 디자인 된 다음 UIViewController을 설정할 수 있습니다. 일부 속성을 초기화하십시오.

편집 : 당신이 행이 동적 jQuery과 사용하는 경우에서 iOS 5

1

부터 사용할 스토리 보드를 사용하는 경우 당신은 단지 prepareForSegue:를 사용, 당신의 tableview에 SEGUE를 호출하는 것이 좋습니다 : didSelectRowAtIndexPath

예를 들어, 내 iPad 앱의 스크린 샷을 보면 고정 셀에서 각 세그먼트를 드래그했습니다.

https://itunes.apple.com/ml/app/h4-spanish-lite/id388918463?mt=8#

불행하게도, 지금은 프랑스와 중국어 애플 리케이션을 갖고 싶어. 나는 현재 프랑스어에 대한 결합자를 가지고 있지 않으며 중국인에게는 적용되지 않습니다. 또한 일부 게임은 중국어로 작동하지 않습니다. 이제 테이블을 동적으로 생성해야합니다. 별도의 스토리 보드를 만들 수도 있지만 번거롭지는 않습니다.

관련 문제