2016-11-08 2 views
0

Допустим, у меня есть 2 ViewControllers, в моем MainViewController У меня есть кнопка, которая выполняет segue для SecondViewController. При нажатии кнопки я сохраняю некоторые исходные данные в coreData, поэтому требуется некоторое время.Как показать индикатор активности при прохождении между контроллером вида

Вот что я хочу сделать; Проходя между ViewControllers, я хочу показать ActivityIndicator, но его запуск после открытия SecondViewController. Не могли бы вы помочь мне? Я новичок в Свифте.

Вот код, который я использовал в моем MainVC:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 

     if (segue.identifier == "SecondViewController") { 

      SwiftSpinner.show("Loading") // Act. indicator found on github 

      willRunOnce() // Here Im saving data to CoreData 

      SwiftSpinner.hide() 
     } 

    } 
+0

Вы должны показать кок на кнопку мыши и должны скрыть его после 'prepareForSegue' – Aditya

ответ

1

Вместо добавления кода ActivityIndicator в prepare(for:sender:) методе вам нужно вызвать его в действие кнопки и после этого вызова performSegue(withIdentifier:sender:) метода.

@IBAction func onBtnSkip(_ sender: UIButton) { 

    SwiftSpinner.show("Loading") // Act. indicator found on github 
    willRunOnce() // Here Im saving data to CoreData 
    SwiftSpinner.hide() 

    //Now performSegue 
    self.performSegue(withIdentifier: "identifier", sender: nil) 
} 
+0

Это не работают для меня –

+0

Покажешь, что' willRunOnce() ', как это делает любой асинхронный вызов? –

+0

Не делать асинхронный вызов, имеет ли он значение это?, Возможно :) –