在我的 iPhone 应用程序中,需要在加载第一页之前显示启动画面(显示公司 Logo 和一些信息)2-3 秒。
此外,应用还需要决定哪个页面应作为此处的第一页加载(根据用户的“初始设置完成”级别)。
我正在使用“Swift”作为编程语言并使用“Universal StoryBoard”来设计界面...
我已选择 Main.storyboard 作为启动屏幕文件。在 ViewController 类中实现了以下逻辑
override func viewDidAppear(animated: Bool) {
NSLog("Before sleep...")
sleep(2)
NSLog("After sleep...")
self.controllNavigation()
}
func controllNavigation() -> Void {
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
var nextViewController
if (Condition1)
{
nextViewController = storyBoard.instantiateViewControllerWithIdentifier("MainMenu") as! MainMenuViewController
}
else
{
nextViewController = storyBoard.instantiateViewControllerWithIdentifier("UserSetup") as! UserSetupViewController
}
self.presentViewController(nextViewController, animated: true, completion: nil)
}
一切正常,但在等待 sleep(2)
时,刷新页面会发生某种事情。我不确定这是否是最好的方法。喜欢听想法。谢谢
最佳答案
在 app delegate 中使用延迟而不是 viewController 的 viewDidAppear。 用作:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
NSLog("Before Sleep");
sleep(2);
NSLog("After sleep");
return true
}
这样做会让你的启动画面停留到 2 秒,然后你可以在你的 View Controller 中使用以下内容:
override func viewDidAppear(animated: Bool) {
self.controllNavigation()
}
希望这有帮助:)
关于Storyboard 中的 iOS Swift 启动画面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31114418/