I want to display a loading view (the one provided by apple) once a WKInterfaceButton is pressed:
I need this because after the WKInterfacebutton is pressed, I'm calling the main iPhone app to do some service calls which will take some time to return a response.
WKInterfaceController.openParentApplication(watchMessage, reply: { (reply:[NSObject : AnyObject]!, error: NSError!) -> Void in
I have used very simple progress using WKInterfaceLabel,
Create properties and outlets,
@IBOutlet var loadingLabel: WKInterfaceLabel!
var loadingTimer = Timer()
var progressTracker = 1
Implementation,
func startProgressIndicator() {
// reset progress and timer
progressTracker = 1
loadingTimer.invalidate()
// schedule timer
loadingTimer = Timer.scheduledTimer(timeInterval: 0.3, target: self, selector: #selector(InterfaceController.updateProgress), userInfo: nil, repeats: true)
loadingLabel.setHidden(false)
}
func updateProgress() {
switch progressTracker {
case 1:
lastUpdateLabel.setText("Loading..")
progressTracker = 2;
case 2:
lastUpdateLabel.setText("Loading...")
progressTracker = 3;
case 3:
lastUpdateLabel.setText("Loading.")
progressTracker = 1;
default:
print("default case")
}
}
func stopProgressIndicator() {
loadingTimer.invalidate()
lastUpdateLabel.setHidden(true)
}
Use these functions to show and hide,
startProgressIndicator()
stopProgressIndicator()