Projeto de subvisualização de iPhone (UIView vs UIViewController)

Estou criando um aplicativo de teste simples. O aplicativo precisa exibir diferentes tipos de QuizQuestions. Cada tipo de QuizQuestion tem um comportamento e interface de usuário distintos.

A interface do usuário será algo assim:texto alternativo http://dl.getdropbox.com/u/907284/Picture%201.png

Eu gostaria de poder projetar cada tipo de QuizQuestion no Interface Builder.

Por exemplo, um MultipleChoiceQuizQuestion ficaria assim:texto alternativo http://dl.getdropbox.com/u/907284/Picture%202.png

Originalmente, planejei fazer da classe QuizQuestion um UIViewController. No entanto, eu li na documentação da Apple que os UIViewControllers só devem ser usados ​​para exibir uma página inteira.

Portanto, eu fiz o meu QuizController (que gerencia a tela inteira, por exemplo, botões prev / next), um UIViewController e minha classe QuizQuestion, uma subclasse do UIView.

No entanto, para carregar este UIView (criado no IB), devo[1] faça o seguinte no meu construtor:

//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
}

Esse tipo de acesso não parece ser padrão ou orientado a objetos. Este tipo de código é normal / aceitável? Ou eu fiz uma má escolha em algum lugar no meu design?

Obrigado,

editar (para maior clareza): Eu gostaria de ter uma classe separada para controlar o multipleChoiceView ... como um ViewController, mas aparentemente isso é apenas para janelas inteiras. Talvez eu deva fazer um MultipleChoiceViewManager (não controlador!) E definir o proprietário do arquivo para isso em vez disso?

questionAnswers(2)

yourAnswerToTheQuestion