如何以编程方式将视图控制器添加到窗口并将其置于最前面

时间:2018-04-25 05:30:03

标签: ios swift

enter image description here 我想为整个应用程序做一个屏幕保护程序,但我只能做1个屏幕...现在我改为appdelegate启动计时器并显示屏幕保护程序整体...但是,我不知道如何在app delegate窗口添加视频屏幕保护程序(视频播放器视图)整个...计时器我做了edi,它确实在5秒后打印出“播放视频”,但视频视图没有显示出来。

使用的库: 1. https://github.com/piemonte/Player 2.计时器

3 个答案:

答案 0 :(得分:2)

如果它适合你,请使用它。

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

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

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

    self.window?.rootViewController = initialViewController
    self.window?.makeKeyAndVisible()

    return true
}

如果不起作用,那么我建议在此视频屏幕上使用一个初始UIViewController,并在视频完成后切换到下一个屏幕。

答案 1 :(得分:2)

UIApplication.shared.keyWindow?.rootViewController?.addChildViewController(self.player) UIApplication.shared.keyWindow?.addSubview(self.player.view)

这是最佳解决方案。

感谢:高级德斯蒙德

答案 2 :(得分:0)

不确定但您可以尝试在启动器屏幕上添加视频,或者如果您希望视频应该运行,那么您需要按照这些简单的步骤进行操作

  1. 在applicationDidLaunch上添加电影播放器​​
  2. 当视频完成后返回方法,您需要加载app控制器。
  3. 我希望这有助于让我知道,以防您需要更多帮助。

    [根据要求编辑]

    我认为你需要在app delegate

    中创建一个控制器
    1. 您需要在app delegate中创建一个类功能,您可以在其中添加电影播放器​​并自动播放。
    2. 你还需要维护一个计时器,但是在使用计时器时要小心并仔细阅读它,因为它需要非常小心地管理,否则会导致各种崩溃。
    3. 您可以通过以下逻辑(如

      )在屏幕上获取触摸事件来管理计时器
        

      如果电影播放器​​在屏幕上,则删除电影播放器​​,

           

      使计时器无效并重新启动计时器

    4. 带定时器的功能将执行以下操作 使计时器无效

    5.   

      add movie player on the window and bring it to the main screen.