如何在单独的 UIWindow 中显示另一个 viewController

how to present another viewController in separate UIWindow

我想在我的应用程序中创建一个浮动按钮,它将在整个页面上可见,并且可以从单独的 ViewController 处理事件以保持按钮状态。

我想在用户登录应用程序时同时从一个单独的 window 打开一个 ViewController。如果用户点击按钮,那么 ViewController 将处理该事件,如果点击按钮外部,则它应该由主控制器处理。

谢谢

首先用 .xib 文件创建一个 UIViwe,然后创建您需要的 UI。所有 UI 相关的功能都将在 UIView class 中,并创建一个管理所有事件的管理器 class。

使用下面的代码将 playerView 添加到 window

PlayerManager.shared.addPlayer()

查看播放器管理器的以下代码class

class PlayerManager : NSObject{
  static let shared = PlayerManager()
  private override init(){
    super.init()
  }

    func addPlayer(){
        let window = UIApplication.shared.keyWindow
        let player = Bundle.main.loadNibNamed("PlayerView", owner: nil, options: nil)![0] as! PlayerView
        let outerView = UIView(frame: CGRect(x: getXValueForView(width: 180), y: getYValueForView(height: 120), width: 180, height: 60))
        player.frame.size = CGSize(width: 180, height: 60)
        player.playerDelegate = self
        outerView.clipsToBounds = true
        player.miniPlayer.isHidden = false
        player.expendedPlayer.isHidden = true
        outerView.addSubview(player)
        window?.addSubview(outerView)
    }
}