2012-07-15 6 views
1

MVC의 개념을 이해합니다. 최소한 나는 내가하기를 바란다. 그러나 내가 최근에 겪었던 특정한 상황이있다. 그것은 내가 실제로 생각을 가지지 않는다고 생각하게 만든다.MVC와 UI 요소를 동적으로 생성하기위한 UIButton 사용하기

문제점 : 기존 단추에 적용 할 때 단추의 제목을 편집하는 기능을 추가하는 클래스를 만들려고합니다. UITextField를 동적으로 생성하면 버튼의 새 이름으로 채워집니다. 나는라는 클래스 CustomAnimation에서의 UITextField를 추가하고 다음과 같은 방법으로 초기화의 논리를 개최 :

CustomAnimation *yar = [[CustomAnimation alloc] initWithButton:customButton]; 

내가 동적으로 CustomAnimation 같은 사용자 정의 클래스에서있는 UIButton을 만들기 위해 노력하고 때 발생하는 문제와 목표/행동을 할당 해보십시오. UIButton 실제로 ViewController CustomAnimation 클래스 내에서 생성되기 때문에 전 UPCutton 상위 뷰 컨트롤러에 대한 포인터를 가져온 다음 대상으로 설정해야합니다.

[classButton addTarget:viewController action:@selector(dostuff:) forControlEvents:UIControlEventTouchUpInside]; 

모두는 한 가지를 제외하고 좋다 - dostuff 방법은 모든 해킹으로 변하기 여기에 버튼을 볼 수 순서의 ViewController 내부에 거주해야한다.

컨트롤러 대신 클래스 내부에서 임시 UI 요소를 생성하려면 올바른 방법은 무엇입니까?

감사합니다

답변

1

당신이 단위의 측면에서 MVC 볼 수 많은 방법이 있습니다. 귀하의 질문을 올바르게 이해하는 경우 MVC를 단일 제어 수준으로 구현하려고합니다. 내 의견으로는 너무 정교합니다. 나는 컨트롤러가 UI 컨트롤의 덩어리를 관리하는 좀 더 거친 부분을 목표로하려고한다. 보기 또는 창.

버튼 라벨의 편집 가능성은 버튼에 속한 버튼 (버튼으로 캡슐화 됨)이므로 버튼의 전체 구현에 포함되거나 구현되어야한다고 주장 할 수 있습니다. 일단 이것을 받아들이면 이것을 UIButton의 하위 클래스로 구현하고 CustomAnimation에있는 코드를 UIButton의 하위 클래스로 옮길 수 있습니다. 또는 UIButton의 하위 클래스에있는 CustomAnimation 중 더 선호하는 것을 캡슐화하십시오.

+0

이것은 매우 좋은 생각입니다. Roger. 전적으로 내 질문에 답을하지는 않지만 훌륭한 리드를 주었고 이것이 내가 찾고 있었던 것입니다. 감사! – yacana

관련 문제