2012-07-26 13 views
5

Ich verwende zum ersten Mal Storyboards in meiner iOS App. Ich habe 2 Ansichten in meinem Storyboard (A & B). Sagen wir A ist mein erster View-Controller in meinem Storyboard. Als meine App gestartet wurde, kann ich View Controller A sehen. Bis jetzt funktioniert alles wie erwartet. Jetzt prüfe ich in meiner Ansicht Controller A, ob der Benutzer eingeloggt ist oder nicht. Wenn der Benutzer nicht eingeloggt ist, möchte ich den View Controller B vorstellen. Wie kann ich B modal mit dem PresentModalViewController programmatisch anzeigen?PresentModalViewController im Storyboard programmatisch iOS 5

Hier mein Set ist bis

enter image description here

Hier ist mein Code

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 

    if (!isUserLoggedIn) { 
     NSLog(@"USER NOT LOGGED IN...."); 
     UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
     LoginViewController *vc = (LoginViewController*)[mainStoryboard instantiateViewControllerWithIdentifier:@"B"]; 
     [self presentModalViewController:vc animated:YES]; 
    } 


} 

Jede Art von Hilfe ist willkommen. Danke

Antwort

10

Was du bis jetzt getan hast, scheint richtig zu sein. Hast du daran gedacht, den Bezeichner von B im Storyboard zu setzen?

Auch könnten Sie

[self.storyboard instantiateViewControllerWithIdentifier:@"B"]; 

statt versuchen, was du tust.

Update:

Hier ist, was die viewDidLoad Methode aussehen könnte:

- (void)viewDidLoad { 

    [super viewDidLoad]; 

    if (!isUserLoggedIn) { 

     NSLog(@"User is not logged in."); 

     LoginViewController *vc = (LoginViewController *)[self.storyboard instantiateViewControllerWithIdentifier:@"B"]; 
     [self presentModalViewController:vc animated:YES]; 

    } 

} 

Auch sehe ich aus dem Bild, das Ihr erster View-Controller ist nicht auf eine bestimmte Klasse. Es sagt nur "View Controller", während der zweite "Login View Controller" korrekt anzeigt.

Hinweis: Ich habe momentan keinen Zugriff auf Xcode, also habe ich es noch nicht getestet.

+0

Kennung ist Storyboard korrekt eingestellt. Wo sollte ich über Zeile schreiben und was soll ich aus meinem Code entfernen? – iOSAppDev

+0

@iOSAppDev: Ok. Probier den Code, den ich jetzt gepostet habe. Wenn das nicht funktioniert, ist etwas anderes falsch/fehlt. Stellen Sie außerdem sicher, dass diese Codezeilen tatsächlich ausgeführt werden. Sie können auch eine 'NSLog'-Anweisung in' viewDidLoad' des View-Controllers hinzufügen, den Sie anzeigen möchten (LoginViewController), um sicherzustellen, dass sie geladen ist. – matsr

Verwandte Themen