我有一个展开赛格瑞这需要几秒钟就可以完成,而其保存图片到磁盘。我想直到视图撤职,但视图不更新以显示活动的指标。斯威夫特3 - 观点并不时更新赛格瑞准备叫
这是我的职责,这是从视图控制器之前,它驳回叫:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "saveRecord" {
print("indicator")
let indicator = UIActivityIndicatorView()
indicator.frame = self.view.frame
indicator.activityIndicatorViewStyle = .whiteLarge
indicator.color = UIColor.blue
indicator.hidesWhenStopped = true
indicator.startAnimating()
self.view.addSubview(indicator)
self.view.layoutSubviews()
print("laid out subviews")
}
}
两个打印语句执行和调试器显示,该指标已添加到主视图作为一个子视图,但它不会出现在屏幕上。我错过了什么吗?
我知道指示器的位置是不是一个问题,因为在运行的viewDidLoad中相同的代码正确地显示它在屏幕的中间。
UPDATE
我已经重新使用委托SEGUE功能,它正确地节省一切,但问题仍然存在。仍然没有活动指标。
@IBAction func saveRecord(_ sender: Any) {
print("indicator")
let indicator = UIActivityIndicatorView()
indicator.frame = self.view.frame
indicator.activityIndicatorViewStyle = .whiteLarge
indicator.color = UIColor.blue
indicator.hidesWhenStopped = true
indicator.startAnimating()
self.view.addSubview(indicator)
self.view.layoutSubviews()
print("laid out subviews")
saveImages()
print("saved images")
self.delegate?.saveRecord(name: name!, category: category)
print("saved record")
self.navigationController?.popViewController(animated: true)
}
更新2
我真的糊涂了吧!这将启动指标:
@IBAction func saveRecord(_ sender: Any) {
print("indicator")
indicator.startAnimating()
//saveImages()
//print("images saved")
//performSegue(withIdentifier: "saveRecord", sender: self)
}
但这并不:
@IBAction func saveRecord(_ sender: Any) {
print("indicator")
indicator.startAnimating()
saveImages()
print("images saved")
performSegue(withIdentifier: "saveRecord", sender: self)
}
您是否在代码中调用了'performSegue'? –
感谢艾哈迈德。是的,我已经试过触发SEGUE的各种方式,但我仍然得到同样的问题。 – Chris