Perché non initWithnibName lavoro per il mio sottoclasse UIViewController?
-
21-08-2019 - |
Domanda
Ho sottoclasse UIViewController in una nuova classe, PageViewController (sto scrivendo un libro semplice app). Voglio aggiungere una nuova vista caricato da un file pennino e sto usando il codice seguente. Esso funziona.
PageViewController *viewController1 = [[UIViewController alloc] initWithNibName:@"Page1" bundle:nil];
[viewController1.view setUserInteractionEnabled:YES];
[self.view addSubview:viewController1.view];
Tuttavia, la prima linea è sbagliata perché dovrei chiamando alloc su PageViewController. Quando mi correggo (sotto), il codice viene compilato ma il file XI ter non viene caricato e la vista è semplicemente trasparente.
PageViewController *viewController1 = [[PageViewController alloc] initWithNibName:@"Page1" bundle:nil];
[viewController1.view setUserInteractionEnabled:YES];
[self.view addSubview:viewController1.view];
Il metodo PageViewController initWithnibName è stato non è commentato ed è solo l'impostazione predefinita, l'impostazione di auto = [super initWithnibName: fascio nibNameOrNil: nibBundleOrNil].
Quello che ho provato: Nel file pennino Pagina1, Ho provato a cambiare la classe File proprietario tra PageViewController e UIViewController. Sì, mi sono ricordato di collegarlo di nuovo alla presa di vista in seguito.
Aiuto, per favore! Stumped.
Soluzione
Avete sovrascritto il metodo loadview in PageViewController? Che cosa succede se si NSLog il viewController1.view?
In effetti, in Interface Builder, è necessario impostare il proprietario del file da PageViewController, e collegare la sua vista alla vista che avete in Interface Builder.