从另一个类

时间:2015-11-12 07:36:42

标签: ios swift uiactivityindicatorview

在我的应用中,有两个视图控制器都嵌入在导航控制器中。我正在使用swift 2和Xcode 7.1.1 为了以最简单的方式管理与下载操作相关的所有代码,我想在另一个新类中移动此代码。问题是从这个类管理UIActivityIndi​​catorView的活动。在这里,您是我的视图控制器中的代码。现在工作得很好。

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)
}

所以,问题是将此代码移到另一个类中,并从这个新类中启动,停止并询问微调器的状态。

任何建议?

1 个答案:

答案 0 :(得分:1)

将新类的委托设置为当前类。或者你可以让微调器全局化,这样你就可以从任何地方到达。