如何在 swift 3 中将视图控制器制作为启动屏幕? [重复]

问题描述 投票:0回答:1

我正在尝试使用 swift 3 从故事板创建一个视图控制器作为我的应用程序中的启动屏幕。我尝试在使用“启动图像”加载启动画面时实现与启动屏幕相同的效果。由于我在启动屏幕中有一个动画,我希望使用视图控制器作为 Swift 3 中的启动屏幕。如何实现这一点?

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    self.window = UIWindow(frame: UIScreen.main.bounds)

    let storyboard = UIStoryboard(name: "Main", bundle: nil)

    let initialViewController = storyboard.instantiateViewController(withIdentifier: "splashScreen")

    self.window?.rootViewController = initialViewController
    self.window?.makeKeyAndVisible()
    return true
}
ios uiviewcontroller swift3
1个回答
12
投票

尝试将视图控制器制作为具有启动屏幕的 rootViewController,并在显示该视图控制器 2-3 秒后。推送/展示您的初始 ViewController。

你可以这样设置splash ViewController :-

self.window?.rootViewController = splashVC

在splashVC的ViewDidLoad()中使用定时器或延迟2-3秒后。显示应用程序的主视图控制器。

//MARK:- Life Cycle Methods
    override func viewDidLoad() {
        super.viewDidLoad()
        Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(self.splashTimeOut(sender:)), userInfo: nil, repeats: false)
        // Do any additional setup after loading the view.
    }

func splashTimeOut(sender : Timer){
    AppDelegate.sharedInstance().window?.rootViewController = yourCustomViewController
    }

为了方便起见,在 Appdelegate 中添加此方法:-

class func sharedInstance() -> AppDelegate{
        return UIApplication.shared.delegate as! AppDelegate
    }
© www.soinside.com 2019 - 2024. All rights reserved.