【发布时间】:2017-08-20 01:34:48
【问题描述】:
我有一个需要时间加载的视图控制器,因此,当我单击按钮或链接转到该视图时,我想显示一条警报消息让用户等待,因为该视图正在加载。
我该怎么做?我无法从其他视图关闭警报。
这是我的代码:
类 ViewControllerDetelleCliente:
@IBAction func verCrearPedido(_ sender: Any) {
let alert = UIAlertController(title: nil, message: "Cargando...", preferredStyle: .alert)
alert.view.tintColor = UIColor.black
let loadingIndicator: UIActivityIndicatorView = UIActivityIndicatorView(frame: CGRect(x: 10, y: 5, width: 50, height: 50)) as UIActivityIndicatorView
loadingIndicator.hidesWhenStopped = true
loadingIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.gray
loadingIndicator.startAnimating();
alert.view.addSubview(loadingIndicator)
present(alert, animated: true, completion: nil)
let next:ViewControllerPedidoArticulos = storyboard?.instantiateViewController(withIdentifier: "PedidoArticulos") as! ViewControllerPedidoArticulos
next.nuevoPedido = true
self.navigationController?.pushViewController(next, animated: true)
}
类 ViewControllerPedidoArticulos:
func viewDidLoad() {
super.viewDidLoad()
self.dismiss(animated: true, completion: nil)
}
我必须在哪里或如何放置.dismiss 函数?
【问题讨论】:
-
您可以将 MBProgressHUD 与文本一起使用
-
你最好在中显示一个活动视图或其他东西。设置视图控制器并在加载完成后将其隐藏。确保异步加载数据,以便视图控制器快速显示。
-
在离开视图之前调用 viewWillDisappear 中的方法。
-
@bey23 我所说的同样是您需要首先移动到该控制器并在发出请求之前显示指示器,并在收到响应时简单地关闭它,如果您想在控制器内不显示任何内容,然后您可以隐藏您的表格视图并在您关闭控制器时显示。
-
@NiravD 是的,我现在就去做。