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?