Verbinden Sie sich miteinander: AppDelegate, ViewController und XIB

8

Ich bin neu in der iOS-Programmierung und bin mit einem Problem steckengeblieben.

Was wurde getan:

Ich habe eine iOS-Anwendung erstellt. Anfangs hatte es main.m, AppDelegate.h, AppDelegate.m und einige andere unterstützende Dateien (nicht mit Code), die normalerweise erstellt wurden.

Dann habe ich manuell XIB-Datei mit der Schnittstelle (LoginView.xib) erstellt und LoginViewController.h und LoginViewController.m manuell hinzugefügt, um XIB zu steuern.

Outlets zu LoginViewController.h hinzugefügt.

Immerhin habe ich die Eigentümerklasse der Datei (LoginViewController) eingerichtet und Verbindungen zwischen XIB und LoginViewController.h hergestellt.

Problembeschreibung:

Ich muss den Login-View-Controller instanziieren und die Login-Ansicht sofort beim Start der Anwendung anzeigen.

Ich habe mehrere Versuche ausprobiert und ein Dutzend Forum-Threads gelesen, aber auf keinen Fall. Es wird nichts angezeigt außer dem weißen Fensterhintergrund. Wie kann ich es richtig machen?

Referenzcode:

LoginViewController.h

%Vor%

LoginViewController.m

%Vor%

AppDelegate.h

%Vor%

AppDelegate.m

%Vor%

AKTUALISIERUNG !!! Leute, dank euch allen habe ich ein anderes Problem gefunden. Nachdem ich festgestellt habe, dass mein Code (nach entsprechender Edition) korrekt ist, habe ich den Simulator gestartet und festgestellt, dass meine App abstürzt, mit folgender Ausnahme:

%Vor%

Dank StackOverflow habe ich es behoben. Loaded Nib aber die View-Outlet war nicht set - neu für InterfaceBuilder

Zitat von Josh Justice Kommentar von dem Thema, das ich verlinkt habe:

  
  1. Öffnen Sie die XIB-Datei, die Probleme verursacht
  2.   
  3. Klicken Sie auf das Dateieigentümer-Symbol in der linken Leiste (oben, sieht aus wie eine gelb umrandete Box)
  4.   
  5. Wenn Sie die rechte Seitenleiste nicht sehen, klicken Sie auf das dritte Symbol über "Ansicht" in Ihrer Symbolleiste. Dies zeigt die rechte Seitenleiste
  6.   
  7. Klicken Sie in der rechten Seitenleiste auf den dritten Tab - den, der ein wenig wie eine Zeitung aussieht
  8.   
  9. Stellen Sie unter "Custom Class" oben sicher, dass Class der Name des ViewControllers ist, der dieser Ansicht entsprechen soll. Wenn nicht, geben Sie es ein
  10.   
  11. Klicken Sie in der rechten Seitenleiste auf den letzten Tab - den, der wie ein Kreis mit einem Pfeil aussieht
  12.   
  13. Sie sollten "outlets" mit "view" darunter sehen. Ziehen Sie den Kreis daneben zum "Ansicht" -Symbol in der linken Leiste (unten, sieht aus wie ein weißes Quadrat mit einem dicken grauen Umriss
  14.   
  15. Speichern Sie die XIB und führen Sie sie erneut aus
  16.   

Wahrscheinlich werden diese Informationen, die zu einem Punkt zusammengefasst sind, anderen Neuankömmlingen helfen, den Weg, den ich schneller gegangen bin, zu bestehen.

    
DaddyM 13.03.2013, 21:35
quelle

3 Antworten

8

Setzen Sie den LoginViewController als Root-View-Controller in Ihrer Anwendung: didFinishLaunchingWithOptions: method.

%Vor%

Entferne diese Zeile:

%Vor%     
bvogelzang 13.03.2013, 21:39
quelle
2

Sie müssen die rootViewController wie folgt in Ihrem AppDelegate.m

festlegen %Vor%     
nsgulliver 13.03.2013 21:38
quelle
0

Haben Sie bereits mit der Erstellung Ihrer Benutzeroberfläche für Storyboards gearbeitet? (Storyboards sind neu ab iOS 5) Sie sind im Prinzip eine Möglichkeit, alle View-Controller in einer Datei darzustellen und Verbindungen zwischen ihnen visuell festzulegen. Was du willst, ist mit Storyboards wirklich einfach. Wenn Sie View-Controller in Ihrer Storyboard-Datei einrichten, sehen Sie einen Pfeil, der auf das erste Storyboard zeigt, das Sie eingerichtet haben. Das bedeutet, wenn Sie Ihre App ausführen, die die anfängliche Ansicht ist, die geladen wird. Wenn Sie eine andere Ansicht bevorzugen, die zuerst geladen werden soll, ziehen Sie einfach diesen Pfeil auf einen anderen View-Controller.

    
iOSAppGuy 13.03.2013 22:00
quelle