간단한 퀴즈 응용 프로그램을 디자인하고 있습니다. 응용 프로그램은 다른 유형의 QuizQuestions를 표시해야합니다. QuizQuestion의 각 유형에는 고유 한 동작 및 UI가 있습니다. 내가 인터페이스 빌더에서 QuizQuestion의 각 유형을 설계 할 수 있도록하고 싶습니다 alt text http://dl.getdropbox.com/u/907284/Picture%201.pngiPhone 하위 뷰 디자인 (UIView 대 UIViewController)
:
사용자 인터페이스는 다음과 같이 될 것입니다.
예를 들어, MultipleChoiceQuizQuestion는 다음과 같이 보일 것이다 : alt text http://dl.getdropbox.com/u/907284/Picture%202.png
원래, 나는 QuizQuestion의 클래스 A의 UIViewController를 만들기 위해 계획했다. 그러나 Apple 설명서에서 UIViewController는 전체 페이지를 표시하는 데 사용해야한다고 읽었습니다.
따라서 UIViewController와 QuizQuestion 클래스 UIView의 하위 클래스 인 전체 화면 (예 : 이전/다음 버튼)을 관리하는 QuizController를 만들었습니다. 그러나
는, (IB에서 만든)이있는 UIView를로드하는 데, 나는 [1] 내 생성자에서 다음을 수행해야합니다
//MultipleQuizQuestion.m
+(id)createInstance {
UIViewController *useless = [[UIViewController alloc] initWithNibName:@"MultipleQuizQuestion" bundle:nil];
UIView *view = [[useless.view retain] autorelease];
[useless release];
return view; // probably has a memory leak or something
}
이러한 유형의 액세스 표준으로 또는 객체 지향하지 않는 것 같습니다. 이 유형의 코드는 정상입니까/수용 할 수 있습니까? 아니면 내 디자인 어딘가에서 잘못된 선택을 했습니까?
감사합니다, (선명도)
편집 :이 난의 ViewController 같은 multipleChoiceView을 ... 제어하는 별도의 클래스를 가지고 싶습니다하지만 분명히 그 전체 창에 대해서만입니다. 아마도 MultipleChoiceViewManager (컨트롤러가 아닌)를 만들고 File Owner를 대신 설정해야할까요?
고마워요.하지만 multipleChoiceView를 제어하는 별도의 클래스를 갖고 싶습니다. ViewController와 비슷하지만, 전체 윈도우에서만 가능합니다. 아마도 MultipleChoiceViewManager (컨트롤러가 아님)를 만들어 File Owner를 대신 설정해야합니까? – tba
나는 당신이 그렇게하는 것을 더 어렵게 만들고 있다고 생각한다. 위임은 관계없이 사용해야하는 것이므로 자신의 클래스 또는 코드가 사용되는 뷰 컨트롤러 클래스에서 코드를 원하는 위치와 관련하여 결정해야합니다. 분명히 당신에게 달렸지 만, 나는 당신이 그것을 자신의 반에 넣어서 얻는다고 생각하지 않습니다. 친애하는. –