来自TextField的iOS 9 Swift Segue

时间:2016-06-13 20:43:02

标签: ios swift segue

我想在用户点击"输入"后立即启动UIActivityIndi​​cator。在UITextField上。因为一旦他们点击进入应用程序获取存储在网络中的信息,我希望用户知道该应用程序正在工作。

web提取发生在shouldPerformSegueWithIdentifier函数内部,因为根据结果,segue将会或不会发生。

那么,当用户点击返回键时,调用的方法的顺序是什么。我想在那个时刻启动UIActivityIndi​​cator。我尝试了" textFieldDidEndEditing和textFieldShouldReturn"但是它们都发生在PrepareForSegue和ShouldPerformSegueWithIdentifier之后。

提前多多感谢。

2 个答案:

答案 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。)