0

이보기의 그림에 모델,에 대해 아무것도 모르는 :코코아 MVC 제한

Cocoa MVC interaction diagram

을하지만이 예를 고려해
을 내가 가지고 항목 내 모델 클래스와 나는 그것의 시각적 표현을 원한다. 가장 분명한 것은 입니다. ItemView 클래스는 으로 초기화됩니다.
그래서, 이런 식으로, 나는 코코아 MVC 규칙을 위반하고 그것으로 불편 함을 느낍니다. 그러나 클래스가 없으면 불편 함을 느낍니다. ItemView. 가장 실용적인 솔루션은 무엇입니까? 당신이 MVC에 대해 정말 우려되는 경우

+0

당신이 항상 Item, ItemView, ItemViewController, ItemController 등을 가지고 있다는 것을 의미하지는 않습니다. –

+0

나를 위해, Item과 ItemView는 매우 빈번한 상황입니다. – goodfella

+0

귀하의 ItemView는 usaully의 하위 클래스입니까? –

답변

0

, 무엇처럼 컨트롤러 방법을 정의하는 방법에 대한 : 작성 및 ItemView을 "채우기"에 대한 책임이

- (UIView*)itemViewForItem:(Item*)item; 

?

주 컨트롤러 클래스는 메인 뷰와 사용자가 가지고있는 모든 ItemViews의 컨트롤러 역할을합니다.

또 다른 방법은 각 ItemView에 자체 ItemViewController를 제공하는 것입니다. 이것은 완벽하게 훌륭하며 컨트롤러/뷰가 어떤 복잡성이라도 IMO 인 경우 가장 좋습니다. 이 단점은 컨트롤러 컨테이너 처리가 iOS> 5에서만 지원된다는 것입니다.

+0

ItemView뿐만 아니라 EmployeeView 및 CustomerView도 한 화면에 표시되는 경우 컨트롤러가 신 오브젝트가됩니다. 내 의견으로는 Cocoa MVC 규칙을 위반하는 것보다 나쁩니다. – goodfella

+0

그래, 별도의 컨트롤러의 경우 : ItemViewControllerers, EmployeeViewController 등. MVC를 따르고 싶다면 그럴 수 있습니다. 반면에 사용자 정의보기를 사용하는 것으로 알고 있습니다. 표준 UIView 및 사용자 정의 컨트롤러를 사용하여 동일한 효과를 낼 수 있다고 생각합니다. – sergio

+0

btw, 나는 디자인이 나쁘다는 말은 아닙니다. 나는 약간의 규칙을 어기는 것이 좋은 경우가 있다고 생각한다. 저는 IMO가 규칙을 위반하지 않고 MVC를 처리 할 수있는 방법을 설명하려고 노력했습니다. (그리고 iOS <5에 대한 단점이 있다는 것을 잊지 마십시오. 따라서 솔루션이 그 계정에서 더 나을 수도 있습니다). – sergio