重用LaunchScreen.storyboard xib

时间:2015-12-15 09:04:16

标签: ios swift uistoryboard

我有一个我想重复使用的LaunchScreen.storyboard。

我遇到的问题是viewDidLoad被太快触发了。当应用程序启动时,会在后台完成一些初始处理。由于处理是在后台进行的,因为viewDidLoad会在一秒钟之后触发,因此会有短暂的间隙,但是在后台处理完成之前大约需要5秒。

我想在viewDidLoad的开头加载并显示LaunchScreen.storyboard,以扩展它直到完成后台工作。

我试图改变这一点:

let storyboard = UIStoryboard(name: "LaunchScreen", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("someViewController") as! UIViewController
self.presentViewController(vc, animated: true, completion: nil)

然而,它出错了:

  

由于未捕获的异常而终止应用   ' NSInvalidArgumentException',原因:' Storyboard()不包含带标识符的视图控制器   ' someViewController''

显然,其中一个问题是“someViewController'”。我不知道LaunchScreen故事板是否有一个视图控制器,这就是我被卡住的地方。

绝对会欣赏任何指示。

1 个答案:

答案 0 :(得分:2)

someViewController实际上应该是Interface Builder中设置的名称。我担心没有简单的方法(如果有的话)重用LaunchScreen.storyboard(实际上是xib) - 如果你在Interface Builder中查看它,就没有{{ 1}}那里,只有一个View Controller - 其余的都是在引擎盖下完成的。

现在要解决您的问题 - 您可以做两件事:

  1. 添加"启动画面"视图控制器与启动屏幕相同,只有在应用程序加载数据后才会将其关闭。我不确定,但请记住,在Apple审核期间,这可能会引起不满,因为您故意延长应用程序的启动时间。

  2. 在我看来,这种方式更好 - 向用户表明您的应用仍在加载某些数据,并在完成后刷新您的观看次数。

相关问题