Warum nicht initWithNibName Arbeit für meine UIViewController subclass?
Habe ich UIViewController-Unterklassen in eine neue Klasse, PageViewController (ich Schreibe ein einfaches Buch-app). Ich möchte hinzufügen, um eine neue Ansicht geladen, aus einer nib-Datei und bin mit dem folgenden code. Es funktioniert.
PageViewController *viewController1 = [[UIViewController alloc] initWithNibName:@"Page1" bundle:nil];
[viewController1.view setUserInteractionEnabled:YES];
[self.view addSubview:viewController1.view];
Allerdings, die erste Zeile ist falsch, denn ich sollte den Aufruf von alloc auf PageViewController. Wenn ich es korrigieren (siehe unten), wird der code kompiliert, aber die xib-Datei nicht geladen und die Aussicht ist einfach nur transparent.
PageViewController *viewController1 = [[PageViewController alloc] initWithNibName:@"Page1" bundle:nil];
[viewController1.view setUserInteractionEnabled:YES];
[self.view addSubview:viewController1.view];
Den PageViewController initWithNibName Methode wurde auskommentiert und nur die default, Einstellung self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil].
Was ich versucht habe:
In der Page1 nib-Datei, ich habe versucht, die änderung der Datei-Besitzer-Klasse zwischen PageViewController und UIViewController. Ja, ich erinnerte mich, schließen Sie es wieder an das view outlet danach.
Hilfe, bitte! Ich bin ratlos.
InformationsquelleAutor der Frage niels | 2009-07-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie überschreiben die loadView-Methode in PageViewController?
Was ist, wenn Sie NSLog der viewController1.anzeigen?
In der Tat, die im Interface Builder verwenden, müssen Sie der Besitzer der Datei zu PageViewController, und verbinden Sie seinen Blick zu der Ansicht, die Sie im Interface Builder.
InformationsquelleAutor der Antwort drvdijk