2012-07-26 24 views
5

iOS uygulamamda FIRST zamanı için storyboard kullanıyorum. Storyboard'umda 2 görünüm var (A & B). A'nın senaryo tahtasında ilk görüş kontrol cihazım olduğunu söyleyelim. Uygulamam ne zaman başladıysa, denetleyici A'yı görebiliyorum. Şimdilik evrything beklenti doğrultusunda çalışıyor. Şimdi benim denetleyici A'da, kullanıcının giriş yapıp yapmadığını kontrol ediyorum. Eğer kullanıcı giriş yapmamışsa, kontrolör B'yi sunmak istiyorum. B modelinizi PresentModalViewController'ı kullanarak programatik olarak nasıl gösterebilirim?Storyboard'da PresentModalViewController programatik iOS 5

İşte benim kümesidir kadar

enter image description here

İşte yardımıyla her türlü takdir

- (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]; 
    } 


} 

benim kodudur. Teşekkürler

cevap

10

Şimdiye kadar yaptığınız şey doğru görünüyor .. B filminin betimlemesini aslında film şeridinde mi hatırladınız?

Ayrıca, bunun yerine ne yaptığını ait

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

denemek isteyebilirsiniz.

Güncelleme:

- (void)viewDidLoad { 

    [super viewDidLoad]; 

    if (!isUserLoggedIn) { 

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

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

    } 

} 

Ayrıca, ilk görünüm denetleyicisi herhangi bir sınıfa ayarlanmamış görüntüden bkz:

İşte viewDidLoad yöntem gibi görünebilir budur. Sadece "View Controller" yazıyor, ikincisi ise "Login View Controller" ı doğru gösteriyor.

Not: Şu anda Xcode'a erişimim yok, bu yüzden henüz deneme yapmadım.

+0

Tanımlayıcı, film şeridini doğru bir şekilde ayarladı. Yukarıdaki satırı nereye yazmalıyım ve kodumdan ne çıkarmalıyım? – iOSAppDev

+0

@iOSAppDev: Tamam. Şimdi gönderdiğim kodu deneyin. Bu işe yaramazsa, yanlış/eksik olan başka bir şey var. Ayrıca, bu kod satırlarının gerçekte yürütüldüğünden emin olun. Aynı zamanda, yüklendiğinden emin olmak için göstermek istediğiniz görünüm denetleyicisinin "viewDidLoad" öğesinde "LoginDidLoad" ifadesini de ekleyebilirsiniz (LoginViewController). – matsr