在swift中,如何在顶部保持一个UIViewController().view?比如UIAlertController
Posted
技术标签:
【中文标题】在swift中,如何在顶部保持一个UIViewController().view?比如UIAlertController【英文标题】:In swift, How to keep a UIViewController().view at the top?like UIAlertController 【发布时间】:2019-03-21 05:54:06 【问题描述】:我在UIViewController
上使用CustomAlertViewController
作为警报。当前代码 sn -p 呈现CustomAlertViewController
-
CustomAlertViewController: UIViewController
self.present(CustomAlertViewController(), animated: true, completion: )
但我想在视图层次结构顶部添加CustomAlertViewController
。
有什么建议可以实现吗?
【问题讨论】:
什么?解释为什么你需要这样做 添加Window
而不是在 viewController
上显示。
喜欢 UIAlertController
【参考方案1】:
extension UIViewController
func showAlertConfirm(errorMessage: String, operation: @escaping ()->())
let alert = UIAlertController(title: "Confirmation", message: errorMessage,
preferredStyle: .alert)
let confirmationAction = UIAlertAction(title: "OK", style: .default) (action)
in
operation()
let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler:nil)
alert.addAction(confirmationAction)
alert.addAction(cancelAction)
present(alert, animated: true, completion: nil)
如果你调用这个函数
showAlertConfirm(errorMessage: "Test", operation:
requestData()
)
【讨论】:
【参考方案2】:可能您想将 UIViewCotroller 的视图添加为关键窗口的子视图。检查这个答案:https://***.com/a/38540271/5779168
【讨论】:
但是这个视图不能控制器以上是关于在swift中,如何在顶部保持一个UIViewController().view?比如UIAlertController的主要内容,如果未能解决你的问题,请参考以下文章
即使在 UITableViewCell 中删除标签后如何保持约束 - Swift 3