webentwicklung-frage-antwort-db.com.de

Wie kann ich einen in XIB definierten View Controller erstellen?

Tut mir leid für die vielleicht neugierige Frage, Leute. Ich bin neu in der iOS-Entwicklung.

Wie kann ich einen in XIB definierten View Controller erstellen?

Wenn Sie eine neue Klasse erstellen, die von UIViewController in Xcode über "New File" geerbt wurde, und das Kontrollkästchen with XIB markieren, wird eine xib-Datei erstellt, die kein viewController-Element enthält. Vielmehr gibt es eine placeholder, die auf eine UIViewController verweist, die im Code definiert ist.

Aber ich sehe, dass Sie Controller selbst in Interface Builder erstellen und customClass dafür angeben können.

Leider klappt es bei mir nicht. Ich bekomme einen loaded the "EmbeddedViewController" nib but the view outlet was not set Fehler in der Laufzeit. Ich war jedoch der Meinung, dass die Eigenschaft view vom Ressourcenladeprogramm automatisch festgelegt werden muss, da alles über XIB definiert wird. Dies funktioniert beispielsweise für TableView und seine Zellen.

Könnten Sie uns bitte ein Beispiel geben, wie das geht?

Ich habe ein Beispielprojekt erstellt: https://github.com/cppexpert/SampleWithNib

Der betreffende Controller ist EmbeddedViewController

13
expert

Es stellte sich heraus, dass diese Steuerelemente in IB für Storyboard-Projekte vorhanden sind.

5
expert

Erstellen Sie eine Xib pro UIViewController

Für jede Xib gibt es ein File's Owner-Objekt, mit dem Sie die UIViewController-Klasse dort festlegen können. Klicken Sie auf File's Owner und wählen Sie EmbeddedViewController für die Klasse

Ziehen Sie dann die Hauptklasse UIView und nicht UIViewController dorthin und verbinden Sie diese Ansicht mit dem Eigentümer der Datei als Ansicht. UIViewController wird nur zum Ziehen in das StoryBoard-Basisprojekt verwendet.

https://github.com/lequysang/gitfiles02/blob/master/SampleWithNib-master.Zip

7
LE SANG

Wenn Sie mit xib einen View-Controller über "Neue Datei" erstellen, generiert Xcode eine UIView und verbindet diese automatisch mit dem view-Ausgang. Scheint, als hätten Sie etwas geändert, nachdem Xcode die xib-Datei generiert hat. In diesem Fall müssen Sie eine Ansicht manuell mit dem Ausgang view verbinden.

2
cahn

Wenn Sie in xib eine neue Ansicht erstellen, setzen Sie den Dateieigentümer auf Ihre benutzerdefinierte Klasse. Oder wenn Sie einfach eine Ansicht erstellen möchten. Dann

NSArray* test1 = [[NSBundle mainBundle] loadNibNamed:@"View" owner:self options:nil];
self.myViewFromNib = [test1 objectAtIndex:0];

Wobei myViewFromNib Ihr Ansichtsobjekt und "Ansicht" Ihr Spitzenname ist.

0
Subrat