Por que não initWithNibName trabalho para o meu subclasse UIViewController?
-
21-08-2019 - |
Pergunta
Eu tenho uma subclasse UIViewController em uma nova classe, PageViewController (Eu estou escrevendo um aplicativo simples livro). Quero acrescentar uma nova visão carregada de um arquivo nib e estou usando o seguinte código. Ele funciona.
PageViewController *viewController1 = [[UIViewController alloc] initWithNibName:@"Page1" bundle:nil];
[viewController1.view setUserInteractionEnabled:YES];
[self.view addSubview:viewController1.view];
No entanto, a primeira linha é errado, porque eu deveria estar chamando alloc em PageViewController. Quando eu corrigi-lo (abaixo), os compila o código, mas o arquivo xib não carregar ea vista é apenas transparente.
PageViewController *viewController1 = [[PageViewController alloc] initWithNibName:@"Page1" bundle:nil];
[viewController1.view setUserInteractionEnabled:YES];
[self.view addSubview:viewController1.view];
O método PageViewController initWithNibName foi descomentada e é apenas o auto padrão, definindo = [super-initWithNibName: nibNameOrNil pacote: nibBundleOrNil].
O que eu tentei: No arquivo nib Página1, eu tentei mudar a classe File Proprietário entre PageViewController e UIViewController. Sim, eu me lembrei de ligar de volta para a tomada de vista mais tarde.
Ajuda, por favor! Estou perplexo.
Solução
Você já substituído o método loadView em PageViewController? E se você NSLog o viewController1.view?
De fato, em Interface Builder, você tem que definir o dono do arquivo para PageViewController, e conecte seu ponto de vista com a visão que você tem em Interface Builder.