gpt4 book ai didi

ios5 - 使用 Storyboard和 Split View Controller 在应用程序启动时正确显示条件登录屏幕?

转载 作者:行者123 更新时间:2023-12-05 01:00:51 25 4
gpt4 key购买 nike

这看起来应该很简单,但事实证明它有很多具有挑战性的细微差别——而且我还没有在 Stack Overflow 上的其他地方找到完全、清晰、简单地回答这个问题的答案。

简而言之 - 我有一个 iPad 应用程序,它使用 Storyboard来布局应用程序流程,以及一个 Split View Controller 作为主要的 Root View Controller 。

此应用程序在启动时检查是否存储了登录凭据,如果有,则直接跳转到 UI,如果没有,则显示全屏登录页面。

但挑战是——应该在哪里进行这种条件检查,以及应该如何实例化登录屏幕?

我已经尝试了我能想到的所有排列。

在应用程序中,委托(delegate)似乎是显而易见的地方,但调用 segues 或模式弹出窗口似乎被忽略了,因为来自 Storyboard的 View 尚未生效。

在 Split View的细节 Controller 的启动方法中似乎是下一个明显的地方。

我能找到的最接近工作解决方案的描述如下:
https://stackoverflow.com/a/8224389/529774

- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"Login"];
[vc setModalPresentationStyle:UIModalPresentationFullScreen];

[self presentModalViewController:vc animated:NO];
}

但是通过这个由 Split View的详细 View Controller 调用的实现,底层 Split View会在屏幕上短暂闪烁。

如果我从 viewDidAppear 更改为 viewWillAppear,则没有闪光灯 - 但即使屏幕旋转为横向,登录 View 也会以纵向绘制。

正如我所说 - 这种有条件的登录显示似乎应该是常见且简单的,但我无法在任何地方找到一个简单的工作示例,它结合了 Split View、 Storyboard、旋转感知,并且可以防止 UI 闪烁。

有小费吗?指向良好工作示例的指针?

最佳答案

我遇到了完全相同的问题,但经过大量搜索,杜安的回答给了我一些见解。他的回答仍然在以前的 View 中闪现,但我通过使用解决了这个问题:

-(void)viewWillAppear:(BOOL)animated {

// Check if user is already logged in
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
if ([[prefs objectForKey:@"log"] intValue] == 1) {
self.view.hidden = YES;
}
}

-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];

// Check if user is already logged in
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
if ([[prefs objectForKey:@"log"] intValue] == 1) {
[self performSegueWithIdentifier:@"homeSeg3" sender:self];
}
}

-(void)viewDidUnload {
self.view.hidden = NO;
}

关于ios5 - 使用 Storyboard和 Split View Controller 在应用程序启动时正确显示条件登录屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10541852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com