2015-11-12 2 views
0

В моем приложении есть два контроллера представления и встроены в контроллер навигации. Я использую swift 2 и Xcode 7.1.1 Чтобы управлять всем кодом, связанным с загрузкой, самым простым способом я хочу переместить этот код в новый класс. Проблема заключается в управлении деятельностью UIActivityIndicatorView из этого класса. здесь вы являетесь кодом в моем контроллере. теперь работают отлично.управлять 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) 
} 

Итак, вопрос в том, перенести этот код в другом классе, и от этого нового класса смогут начать, остановитесь и спросите состояние счетчика.

любое предложение?

+1

Вы можете добавить делегаты/блоки для обработки событий из других классов. –

ответ

1

set делегат нового класса соответствует текущему классу. или вы можете сделать spinner global, чтобы вы могли добраться из любого места.

Смежные вопросы