Por que meu UIViewController não está na cadeia de respostas para sua visualização?

Eu escrevi uma subclasse de UIViewController que cria uma visão programaticamente, em vez de carregá-lo de um arquivo NIB.

Tem um simplesloadView método:

- (void)loadView
{
    UIScrollView *mainScrollView =
        [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.view = mainScrollView;
    [mainScrollView release];
}

... então eu faço o grosso da minha inicialização emviewDidLoad, conforme documentado. Tudo funciona, e posso ver a exibição de rolagem com minhas exibições personalizadas.

Eu preciso de um UIViewController para possuir a visão porque é parte de um fluxo de trabalho UINavigationBar. Desde que eu tenho um objeto controlador, eu prefiro fazer o material do controlador.

O problema, então, é que o meu controlador de visão não parece estar na cadeia de respostas.touchesBegan:withEvent: é invocado se eu o definir na visualização raiz ou em uma subvisualização, mas não se estiver no próprio controlador de visualização.

Documentação de manipulação de eventos da Apple mencionacontrolador de visualização deve estar na cadeia de respostas. A documentação do UIViewController não diz nada sobre as etapas extras necessárias além de atribuir a visão raiz aoself.view propriedade, como eu fiz acima. A documentação do UIResponder afirma que um UIView deve descobrir se tem um controlador e passar o evento para ele. A documentação do UIScrollView não diz nada.

Eu também experimentei várias configurações deuserInteractionEnabled: para todas as visualizações e subvisualizações, sem sorte.

o que estou perdendo?

questionAnswers(3)

yourAnswerToTheQuestion