在我的应用中,有两个视图控制器都嵌入在导航控制器中。我正在使用swift 2和Xcode 7.1.1 为了以最简单的方式管理与下载操作相关的所有代码,我想在另一个新类中移动此代码。问题是从这个类管理UIActivityIndicatorView的活动。在这里,您是我的视图控制器中的代码。现在工作得很好。
class VC2: UITableViewController, DetailVC2Delegate {
var privateDB: CKDatabase!
let spinner:UIActivityIndicatorView = UIActivityIndicatorView()
override func viewDidLoad() {
super.viewDidLoad()
...
configuraSpinner()
self.spinner.startAnimating()
fetchChild(parent)
}
func configuraSpinner(){
spinner.activityIndicatorViewStyle = .Gray
spinner.center = self.view.center
spinner.hidesWhenStopped = true
spinner.color = UIColor.redColor()
self.parentViewController?.view.addSubview(spinner)
}
在这个类中,我在块操作中管理活动,如下所示:
func fetchChild(parent: CKRecord){
//...
//...
queryOperation.queryCompletionBlock = { cursor, error in
if (error != nil) {
print(".... - \(error!.localizedDescription)")
} else {
print("....")
if self.spinner.isAnimating() {
dispatch_async(dispatch_get_main_queue(), {
self.spinner.stopAnimating()
})
}
//...
privateDB.addOperation(queryOperation)
}
所以,问题是将此代码移到另一个类中,并从这个新类中启动,停止并询问微调器的状态。
任何建议?
答案 0 :(得分:1)
将新类的委托设置为当前类。或者你可以让微调器全局化,这样你就可以从任何地方到达。