图像和文本字段寄存器不会快速加载

时间:2015-02-09 14:01:39

标签: ios swift storyboard segue uistoryboardsegue

我的视图控制器存在问题,其中包含使用故事板创建的登录表单和图像(UIImageView)。

我创建了一个从视图1(初始视图)过渡到登录屏幕的segue。视图1是视图1的viewDidAppear()上的初始视图控制器我调用了转换到登录视图的performSegueWithIdentifier。

转换工作正常但登录视图在完全加载之前显示,因此当视图出现时,登录屏幕中的图像和登录表单的边框不会显示,在10到20秒后,它们会出现(在此期间没有正在运行的代码。)

当我将登录视图控制器设置为初始视图控制器时,每个东西都可以正常加载而没有任何问题。你对我如何解决这个问题有任何想法吗?以前有没有人经历过这个?

我正在使用swift + xcode 6.1.1

2 个答案:

答案 0 :(得分:0)

此处存在的问题是,您在第一个视图完全加载之前或甚至在显示应用程序主窗口之前尝试显示第二个视图(loginView)。对此最简单的解决方案是在viewDidAppear方法中调用performSegueWithIdentifier而不是viewDidLoad。否则,如果您不想显示第一个视图,可以通过将其状态设置为隐藏然后在viewDidAppear

中执行segue,将其隐藏在viewWillAppear上

答案 1 :(得分:0)

我找到了解决方案。如果用户已经登录,则应用程序检查服务器(function:isLoggedIn)。

如果他未登录,则调用performSegueWithIdentifier函数来显示登录视图。问题是我的代码在闭包(成功或失败回调)中调用performSegueWithIdentifier,因此在isLoggedIn函数完成之前调用它。

所以segue被调用并显示登录视图,但iOS判断处理连接更重要的是在登录视图上显示徽标图像,这就是为什么只有在iOS完成处理后才会显示徽标的原因连接。

我要解决的问题是使用CGD(Grand Central Dispatch)调用isLoggedIn检查新线程并在mainQueue中调用performSegueWithIdentifier。