我想在用户点击"输入"后立即启动UIActivityIndicator。在UITextField上。因为一旦他们点击进入应用程序获取存储在网络中的信息,我希望用户知道该应用程序正在工作。
web提取发生在shouldPerformSegueWithIdentifier函数内部,因为根据结果,segue将会或不会发生。
那么,当用户点击返回键时,调用的方法的顺序是什么。我想在那个时刻启动UIActivityIndicator。我尝试了" textFieldDidEndEditing和textFieldShouldReturn"但是它们都发生在PrepareForSegue和ShouldPerformSegueWithIdentifier之后。
提前多多感谢。
答案 0 :(得分:3)
为什么不在textFieldShouldReturn
本身调用代码?
func textFieldShouldReturn(textField: UITextField) -> Bool {
activityIndicator.startAnimating()
//Do the web stuff
if shouldPerformSegue == true {
self.performSegueWithIdentifier("Some Identifier", sender: self)
}
return true
}
答案 1 :(得分:1)
听起来你正在尝试做一些不会工作的事情。您无法在shouldPerformSegueWithIdentifier中执行异步网络事务,并使用该事务的结果来决定是否要执行segue。
根本不要调用segue。
使用textFieldShouldReturn方法。在该方法中,始终返回TRUE,显示活动指示符,然后启动网络请求。当请求完成时,删除活动指示符并触发segue(或者,如果网络请求失败,或者返回您不想要的结果,则显示相应的消息并 DON& #39; T segue。)