如何全屏显示弹出视图

How to present a popup view in full screen

我已关注视图配置

选项卡栏 -> 导航控制器 -> 视图:单击一个按钮 -> 转到 -> 另一个视图:单击一个按钮 -> 弹出视图。

此模态视图位于不同的故事板上。

我想全屏显示这个模型视图。我已经尝试过 中提到的这个解决方案,但它不起作用。我也尝试了其他一些解决方案,但弹出视图没有全屏显示,状态栏在顶部可见。

如何全屏显示模态视图?

let storyboard = UIStoryboard(name: "Other", bundle: Bundle.main)

guard let popupVC = storyboard.instantiateViewController(withIdentifier: "PopUpViewController") as? PopUpViewController else {
   print("PopUpViewController not found")
   return
}

popupVC.modalPresentationStyle = .fullScreen

self.present(popupVC, animated: true, completion: nil)

也许尝试以这种方式创建视图控制器:

    let popOverVC = UIStoryboard(name: "yourBoard", bundle: nil).instantiateViewController(withIdentifier: "YourViewController") as! YourViewController
    self.addChild(popOverVC)
    let lSs = UIScreen.main.bounds
    popOverVC.view.frame = CGRect(x: 0, y: 0, width: lSs.width, height: lSs.height)
    popOverVC.view.tag = tag
    self.view.addSubview(popOverVC.view)
    popOverVC.didMove(toParent: self)

在弹出视图控制器中 class,添加一个在 viewDidLoad 中为其视图设置动画的方法。

编辑:我阅读了您的回复。您遇到的问题是由于未正确处理状态栏引起的。不要试图让这个 viewcontroller 全屏显示,只需隐藏状态栏 How do I hide the status bar in a Swift iOS app? 当你想再看的时候把它带回来。

您可以尝试使用导航控制器进行演示。

let storyboard = UIStoryboard(name: "Other", bundle: Bundle.main)

guard let popupVC = storyboard.instantiateViewController(withIdentifier: "PopUpViewController") as? PopUpViewController else {
   print("PopUpViewController not found")
   return
}

var navigationController = UINavigationController(rootViewController: popupVC)
navigationController.modalPresentationStyle = .fullScreen
self.present(navigationViewController, animated: true, completion: nil)

另一种方法是使用 presentViewController,但 presentViewController 只会在当前可见的 viewController 上模态显示一个 viewController,而使用 navigationController 显示会提供灵活性将更多组件推到顶部,提供更流畅的导航体验,返回上一页的行为。