我有一个条形按钮,我创建了一个IBAction
,它将一组数据保存到服务器,然后将用户返回到3个数据输入屏幕中的第一个。在我当前的代码中,我使用延迟函数来模拟保存到服务器,因为我还没有准备好这个项目,但是我需要说明它在完成时的外观。
总的来说,对于发展很新,我相信我只是错过了一步,但我不知道是什么。在我引入performSegueWithIdentifier
步骤之前,此代码完全按预期执行。也就是说,当点击“保存”按钮时,活动指示器开始动画,代码暂停4.0秒,然后活动指示器停止动画。当我添加performSegueWithIdentifier
步骤并点击按钮时,会立即执行segue。
非常感谢您的协助。
@IBAction func saveDTrans(sender: UIBarButtonItem) {
// here is where data is saaved to server
appIsWorking ()
delay(4.0){
self.activityIndicator.stopAnimating()
UIApplication.sharedApplication().endIgnoringInteractionEvents()
self.performSegueWithIdentifier("returnToDispenseScreenOne", sender: self) //use this code to perform segue
}
}
答案 0 :(得分:0)
如果你想在segue执行之前运行一些代码,那么试试
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
if (segue.identifier == "Your Segue name") {
// Your code that will run before segue execution
}
}
答案 1 :(得分:0)
您可以使用NSTimer
:
NSTimer.scheduledTimerWithTimeInterval(4.0, target: self, selector: Selector("goToNextScreen:"), userInfo: nil, repeats: false)
所以,在你的代码中:
@IBAction func saveDTrans(sender: UIBarButtonItem) {
// here is where data is saaved to server
appIsWorking ()
// Run function goToNextScreen(_:) 4 seconds later
NSTimer.scheduledTimerWithTimeInterval(4.0, target: self, selector: Selector("goToNextScreen:"), userInfo: nil, repeats: false)
}
func goToNextScreen(sender: AnyObject) {
self.activityIndicator.stopAnimating()
UIApplication.sharedApplication().endIgnoringInteractionEvents()
self.performSegueWithIdentifier("returnToDispenseScreenOne", sender: self)
}