2015-02-09 46 views
0

我有一个视图控制器,包含一个登录窗体和使用故事板创建的图像(UIImageView)的问题。图像和文本字段寄宿生不加载

我已经创建了一个从视图1(初始视图)到登录屏幕的过渡。视图1是视图1的viewDidAppear()上的初始视图控制器我称之为过渡到登录视图的performSegueWithIdentifier。

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

当我设置登录视图控制器作为初始视图控制器,每一件事都加载罚款没有问题。你有什么想法可以解决这个问题吗?有没有人经历过这个?

我使用SWIFT +的Xcode 6.1.1

+0

某些时候图像最多需要1分钟才能显示! – MeMTn 2015-02-09 14:56:32

回答

0

我找到了解决方案。应用程序检查服务器是否已经登录(功能:isLoggedIn)。

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

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

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

0

这里的问题站在事实,你想第一个视图之前,显示你的第二个视图(一个LoginView)满载甚至之前应用程序主窗口所示。为此,最简单的解决方案是通过在viewDidAppear方法内调用performSegueWithIdentifier而不是viewDidLoad。否则,如果你不想让你的第一个视图出现,你可以隐藏它在viewWillAppear通过设置其隐藏状态,然后在视图中执行segueDidAppear

+0

对不起,我实际上在viewDidAppear中调用了performSegueWithIdentifier,而不是viewDidLoad。我编辑了这篇文章以纠正它。 – MeMTn 2015-02-09 14:41:44