패턴 MVC를 따르고 싶습니다. "cellForRowAtIndexPath"메서드를 사용해야하는 곳을 묻습니다./ 현재이 메서드는 컨트롤러 파일에 있기 때문에.cellForRowAtIndexPath가 모델 또는 뷰에 있습니까?
답변
모델 (M) 또는 컨트롤러 (C)에 있어야하는지 묻는 경우를 가정합니다. jQuery과 두 개의 프로토콜이 있기 때문에 그리고 그것은 흥미로운 질문이있다 :
UITableViewDelegate
UITableViewDataSource
음을의 UITableViewDelegate 프로토콜은 일반적으로 컨트롤러 될 뷰의 '소유자'입니다 - 나는 가정 코드를 보지 못했다 그렇지 않으면.
그렇다면 UITableViewDataSource는 어디에 있어야합니까? 이는 애플의 개발자가 컨트롤러에 갈 것이라고 가정한다면, 왜뿐만 아니라 UITableViewDelegate 프로토콜에 통합, 이제
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
을 정의하는 프로토콜입니다? 문서는 (내 굵게)이 말한다 :
UITableViewDataSource 프로토콜은 는 jQuery과 객체에 대한 응용 프로그램의 데이터 모델을 매개하는 것을 객체에 의해 채택 입니다. 데이터 원본은 테이블보기 개체를 제공하고 테이블보기를 구성하고 수정해야하는 정보를 제공합니다.
데이터 모델의 대표로서 데이터 소스는 테이블 뷰의 모양에 관한 최소한의 정보를 에 제공합니다. 표보기 개체의 대리인 - UITableViewDelegate 프로토콜을 사용하는 개체 -이 정보를 제공합니다. 그러나 아마하지 동일한 컨트롤러가 실제로
UITableView
을 관리하는 (- 정말 그것이 컨트롤러에 앉아한다는 뜻 "응용 프로그램의 데이터 모델을 매개"말에 의해서가 아니라 -
는 그래서는 모델에 앉아야 제안 할 것 UITableViewDelegate
프로토콜을 통해). 나에게 당신은 여러 가지 방법으로 이것을 배치하는 것을 볼 수있는 유연성을 가지고있는 것으로 보인다. 그러나 일반적인 결론은 제어기에서 보이는 코드의 99 %에서 UITableViewDelegate
대리인이기도하다는 것이다.
다음은 MVC의 Apple 설명서입니다. http://developer.apple.com/library/mac/documentation/General/Conceptual/CocoaEncyclopedia/Model-View-Controller/Model-View-Controller.html#//apple_ref/doc/uid/TP40010810-CH14-SW9
컨트롤러 객체 (MVC의 C)의 목표는 모델 객체를 뷰 객체와 조정하는 것입니다. 따라서 cellForRowAtIndexPath 메서드의 본질은 주어진 셀 (뷰)에 데이터 (모델에서 오는)를 채우는 것이 컨트롤러에 속하는 것을 지시합니다.
이 접근법은 Apple의 모든 UITableViews 및 UITableViewController 관련 샘플 코드에서 설명됩니다.
- 1. '이메일'클래스가 모델 또는 뷰에 속해 있습니까?
- 2. MVC -이 코드가 모델, 컨트롤러 또는 뷰에 속해 있습니까?
- 3. SVG를 생성하기위한 장고 코드가 모델 또는 뷰에 속해 있습니까?
- 4. cellForRowAtIndexPath가 호출되지
- 5. cellForRowAtIndexPath가 tableView에서 호출되지 않습니다. reloadData
- 6. 중첩 된 뷰에 개별 뷰 모델 할당?
- 7. cellForRowAtIndexPath가 호출되지 않습니까?
- 8. UITableView : cellForRowAtIndexPath가 계속 호출됩니다.
- 9. 배열에 cellForRowAtIndexPath가 없습니다.
- 10. cellForRowAtIndexPath가 너무 늦게 호출되었습니다.
- 11. MVC : 모델 포인터를 뷰에 전달 하시겠습니까?
- 12. 뷰에 모델 장식을 표시하는 방법은 무엇입니까?
- 13. Yii의 페이지 뷰에 모델 생성 시도
- 14. redirect_to를 사용하여 Rails 뷰에 모델 속성 전달하기
- 15. cellForRowAtIndexPath가 필요한 횟수만큼 호출되지 않음
- 16. 어떻게 cellForRowAtIndexPath가 포맷터를 재사용 할 수 있습니까 (스크롤 기능 향상)?
- 17. 지방 모델, activeModel 또는 컨트롤러에 있습니까?
- 18. 레일 : 모델 또는 컨트롤러에 속해 있습니까?
- 19. 수업은 어디에 있습니까? 모델 또는 lib 디렉토리?
- 20. 모델 - 데이터 프로젝트 또는 웹 프로젝트에 있습니까?
- 21. 2 개의 사용자 모델 또는 하나만 있습니까?
- 22. 코코아 NSSortDescriptors가 모델 또는 컨트롤러에 속해 있습니까?
- 23. ASP.NET MVC의 뷰에 모델 데이터를 전달하는 올바른 방법
- 24. 모델 또는 ViewModel이 모델 속성의 지연로드를 처리해야합니까?
- 25. 동일한 뷰에 여러 NSFetchRequestController가 있습니까?
- 26. 리스트 뷰에 onListItemTouch 메소드가 있습니까?
- 27. viewflipper에서 표면 뷰에 문제가 있습니까?
- 28. JDO - 뷰에 전달하기 전에 내 모델 객체에서 DetachCopy를 호출해야합니까?
- 29. MEF 또는 제공자 모델?
- 30. "클래스 다이어그램"- Backbone.js 모델 및 뷰에 대한 것과 비슷합니까?
thx you so much :) – marcL