2012-02-22 25 views
1

我一直在寻找一些代码,它会显示一个登录模式窗口之前加载其他视图。登录模式视图不显示在分割视图

我创建了一个登录笔尖,并在在applicationDidFinishLaunching的appdelegate我用这个代码:

[window addSubview:splitViewController.view]; 
    IntroView *introViewController=[[[IntroView alloc] initWithNibName:@"IntroView" bundle:nil]autorelease]; 
    [introViewController setModalPresentationStyle:UIModalPresentationFullScreen] ; 
    [self.splitViewController presentModalViewController:introViewController animated:NO]; 
    [window makeKeyAndVisible]; 
... 

运行此,模态窗口不显示,但是当我的NSLog它,它被加载。 任何想法为什么它没有显示?

回答

0

如果没有活动会话(在核心数据实体中定义),我的应用程序以分割视图开始并打开模态登录窗口。
将viewDidAppear方法添加到您的初始详细视图控制器。
为新的登录视图控制器创建一个模态段。
请在登录视图中登录内容,然后用“[self dismissModalViewControllerAnimated:YES]”将其解除;“

- (void)viewDidAppear:(BOOL)animated<br> 

{ 
[super viewDidAppear:animated]; 

    // Check if a existing session is open, if not the login screen will appear. 
    // When user logs on an open session record is added to the table. Closed on user logout. 

    userProfile = [LogonSessionManager getCurrentPtuser:managedObjectContext]; 
    if(userProfile == nil){ 
    [self performSegueWithIdentifier:@"login" sender:self]; 
    } else { 
     // We have a user - do user config display stuff 
    }  
} 
0

@greentor:你的回答不完全正确。正确的模态segue应该来自主SplitView。这意味着你必须调用你的DetailViewController#viewDidAppear:

[self.splitViewController performSegueWithIdentifier:@"login" sender:self.splitViewController]; 
[self.splitViewController performSegueWithIdentifier:@"login" sender:self.splitViewController]; 
+0

所以如何在成功登录后关闭loginviewcontroller? – gdubs 2013-02-12 05:34:36