gpt4 book ai didi

ios - modalPresentationStyle 工作奇怪

转载 作者:行者123 更新时间:2023-11-29 11:43:01 28 4
gpt4 key购买 nike

我有一个简单的问题,

为什么这很完美:

class HomeController: UIViewController,UITableViewDataSource,UITableViewDelegate, AddingDisciplineDelegate, LogoutUserDelegate {
override func viewDidLoad() {
super.viewDidLoad()
let controller = SeePlugAlertModalView()
controller.modalPresentationStyle = .overFullScreen
self.present(controller, animated: true, completion: nil)
}
(...)
}

class SeePlugAlertModalView : UIViewController {

override func viewDidLoad() {
super.viewDidLoad()
self.view.isOpaque = false
self.modalTransitionStyle = .crossDissolve
view.backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.5)
}

enter image description here

但是如果我将 modalPresentationStyle 放在 SeePlugAlertView 中,我的 View 会显示但会隐藏父 View Controller 。 (即使背景颜色的 alpha 为 0.5)。

 class HomeController: UIViewController,UITableViewDataSource,UITableViewDelegate, AddingDisciplineDelegate, LogoutUserDelegate {
override func viewDidLoad() {
super.viewDidLoad()
let controller = SeePlugAlertModalView()
self.present(controller, animated: true, completion: nil)
}
(...)
}

class SeePlugAlertModalView : UIViewController {

override func viewDidLoad() {
super.viewDidLoad()
self.view.isOpaque = false
self.modalPresentationStyle = .overFullScreen
self.modalTransitionStyle = .crossDissolve
view.backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.5)
}

enter image description here

最佳答案

问题是,在您的第二个代码中,当 SeePlugAlertModalView 的 viewDidLoad 被调用时,为时已晚; SeePlugAlertModalView 的呈现已经开始。因此,由于您已从 HomeController 中删除了较早的配置,因此在演示时没有设置演示样式,并且您将获得 .fullScreen(默认设置) .

解决方案是较早设置 SeePlugAlertModalView 的呈现样式,例如在其初始化程序或 awakeFromNib 中。

关于ios - modalPresentationStyle 工作奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45403585/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com