如何全屏显示弹出视图
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 显示会提供灵活性将更多组件推到顶部,提供更流畅的导航体验,返回上一页的行为。
我已关注视图配置
选项卡栏 -> 导航控制器 -> 视图:单击一个按钮 -> 转到 -> 另一个视图:单击一个按钮 -> 弹出视图。
此模态视图位于不同的故事板上。
我想全屏显示这个模型视图。我已经尝试过
如何全屏显示模态视图?
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 显示会提供灵活性将更多组件推到顶部,提供更流畅的导航体验,返回上一页的行为。