图像和文本字段寄宿生加载速度不快

Image and text field boarders doesn't load fast

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

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

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

当我将登录 View Controller 设置为初始 View Controller 时,所有内容都可以正常加载,没有任何问题。你知道我该如何解决这个问题吗?有人以前经历过吗?

我正在使用 swift + xcode 6.1.1

这里的问题在于您试图在第一个视图完全加载之前或什至在显示应用程序主 window 之前显示第二个视图(loginView)。最简单的解决方案是在 viewDidAppear 方法中调用 performSegueWithIdentifier 而不是 viewDidLoad。否则,如果您不希望第一个视图出现,您可以通过将其状态设置为隐藏然后在 viewDidAppear

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

我找到了解决办法。如果用户已经登录,应用程序会在服务器上检查(功能:isLoggedIn)。

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

所以 segue 被调用并显示登录视图,但不知何故 iOS 判断处理连接比在登录视图上显示徽标图像更重要,这就是为什么徽标仅在 iOS 完成连接处理。

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