viewController erscheinen schwarz, wenn Sie erscheinen
Hallo an Alle ich bin neu in der iOS-Entwicklung und bin derzeit mit einem Problem mit etwas, was ich versuche zu machen, ein login-Formular Modal angezeigt, wenn ein Benutzer nicht eingeloggt ist.
Ich bin mit NSUserDefaults zum speichern einer id, die ich bin einfach nur überprüfen, ob es existiert. Wenn es nicht, dann würde ich wollen, dass die UIViewController angezeigt.
Bisher habe ich folgenden code in meinem UINavigationController innerhalb eines UITabViewController , ich versuche, den UIViewController angezeigt, die über der Ersten UINavigationController (der, die, das ausgewählt ist), im moment der animation passiert, aber es ist nur ein schwarzer Bildschirm, obwohl der Login-Bildschirm werden alle relevanten Textfelder etc schon erstellt. Wenn ich diese Login-Bildschirm wie der erste Blick, um zu laden, es lädt bis gut.
Dies ist der code, der angezeigt wird, in der Ersten viewcontroller des UINavigationController.
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
if (![prefs stringForKey:@"id"]){
LoginViewController *loginController = [[LoginViewController alloc] init];
[self presentModalViewController:loginController animated:YES];
} else {
[self loadCoffeeUserOrders:[prefs stringForKey:@"id"]];
}
den modalen view geladen wird, aber im moment ist es einfach nur schwarz angezeigt, ich habe versucht, erstellen Sie einen neuen Login-Bildschirm und die gleiche Sache passiert: nichts als ein schwarzer Bildschirm.
hoffen, dass es genug Informationen gibt, die für jemanden, um zu verstehen, was vor sich geht, ich bin sehr neu in iOS-Entwicklung, so, wenn ich habe einige Fehler gemacht, es wäre schön zu wissen, wohin ich gehe falsch.
Dank
- Stellen Sie sicher, dass Ihre LoginViewController Ansicht angeschlossen ist, in der XIB-Datei, legen Sie einen Haltepunkt in LoginViewController ist viewDidLoad und stellen Sie sicher, dass Sie tut, was Sie erwarten.
- Dein login-Ansicht implementiert, in loadView oder hast du für eine Feder für diese?
- ich habe gerade ein NSLog in meinem viewDidLoad-und es ist die Protokollierung es aus, als erwartet. @FirozeLafeer im mit storyboard-Modus in Xcode so habe ich den Blick bereits in das storyboard.
Du musst angemeldet sein, um einen Kommentar abzugeben.
So, die LoginViewController, die Sie erstellen, hier ist eine andere Instanz von der, die du in deinem storyboard. Ich denke, was Sie möchten, um die Ursache zu eins in das storyboard geladen werden und präsentiert werden.
Die einfachste Möglichkeit ist das erstellen eines segue in das storyboard, vom ersten view-controller, um die login-view-controller, die Sie dort erstellt. Sie können Strg-ziehen Sie von einem view controller auf die andere, und wählen Sie "Modal" als die Art von segue. Dann gehen Sie auf den Inspektor für diesen übergang und geben Sie eine id ein. Sagen wir mal, Sie nennen es "segueToLogin".
Dann durchzuführen, dass der übergang von deinem code nur etwas wie das hier tun:
Hoffe, das hilft.
BEARBEITEN
So einfach deine Frage zu beantworten, stellen Sie sich diese:
Haben Sie diese tolle Idee für eine app, also nehmen Sie ein Blatt Papier aus Ihrem pad und skizzieren Sie sich dieses tolle design. Dann Ihre Kolleginnen und Kollegen kommen, so dass Sie Abzocke ein neues, leeres Blatt Papier und zeigen Sie, dass statt. Sie werden nicht beeindruckt sein.
Gleiche passiert hier. Richten Sie eine view-controller in Ihr storyboard mit allen Ihren Ansichten. Aber dann, als es Zeit kam, um es zu zeigen, zog Sie sich eine neue, völlig leere view-controller und zeigte, dass der Benutzer statt. Durch ziehen und betätigen der übergang statt, beenden Sie das laden der eigentlichen view-controller-Instanz, die Sie wollte.
Nun an leitet über, erstellen Sie diese in das storyboard, damit der Benutzer navigieren durch die Szenen. Manchmal sind diese leitet über sind direkt an eine Taste oder so etwas. Aber in diesem Fall Sie nicht möchten, bitten Sie den Benutzer, eine Taste zu drücken oder etwas zu präsentieren, das login-vc, so dass Sie sind die Durchführung, die überleitung selbst.
Hoffe das macht Sinn.
Ich hatte ein ähnliches Problem, aber die Auflösung war nicht die, die oben aufgeführt sind. Das problem befand sich in der tatsächlichen neuen view-controller ".m" - Datei (die, die ich bin versucht zu drücken/modal auf). Es ist die Methode loadView innen, und wenn Sie es dort lassen XCode wird, ignorieren Sie die xib-haben Sie in der storyboard-und erwarten Sie, um das Layout der Ansicht. Entfernen Sie diese Funktion und es wird sich mit der xib statt.
Habe zu lange auf diesen BLÖDEN bug, hoffe, dies kann helfen, speichern Sie jemand anderes Verstand.