登录模式视图未显示在拆分视图上
Posted
技术标签:
【中文标题】登录模式视图未显示在拆分视图上【英文标题】:Login Modal view not showing over a splitview 【发布时间】:2012-02-22 11:51:16 【问题描述】:我一直在寻找一些代码,它会在加载其他视图之前首先显示登录模式窗口。
我创建了一个登录笔尖,并在 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 时它会被加载。 知道为什么它没有显示吗?
【问题讨论】:
【参考方案1】:我的应用以拆分视图开始,如果没有活动会话(在核心数据实体中定义),则会打开一个模式登录窗口。 将 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
【讨论】:
【参考方案2】:@greentor:你的答案并不完全正确。正确的模态序列应该来自主拆分视图。这意味着您必须调用 DetailViewController#viewDidAppear:
[self.splitViewController performSegueWithIdentifier:@"login" sender:self.splitViewController];
【讨论】:
那么登录成功后怎么关闭loginviewcontroller呢?以上是关于登录模式视图未显示在拆分视图上的主要内容,如果未能解决你的问题,请参考以下文章
UISearchController 中的 searchBar 在 iPad 上的拆分视图上未正确显示
Swift 故事板:拆分视图控制器在 MacOS 上未正确显示