Storyboard 中的 iOS Swift 启动画面

标签 ios iphone xcode swift

在我的 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/

相关文章:

iphone - 如何在项目build设置中指定 DEBUG 定义?

ios - 将一个 NSString 复制到另一个 Xcode

ios - QuickLook,删除除完成按钮之外的所有工具栏按钮

ios - Pod Repo Push 在 iOS 中不起作用

ios - iOS8.1模拟器Safari看不到自定义键盘

ios - ‘project’项目已损坏,由于解析错误无法打开。检查项目文件是否有无效编辑...控制冲突

iphone - 在 SQLite 中获取列名?

ios - Xcode 10.1 : Provisioning profile signing certificate error

ios - 以编程方式快速更改 Xib 高度

ios - 距离计算,acos = Nan 而不是0