如何通过按钮调用此功能?

时间:2018-10-08 17:46:50

标签: swift xcode

如何通过按钮调用此功能?

override func prepare(for segue: UIStoryboardSegue, sender: Any?)
{
    if segue.destination is ViewController
    {
        let vc = segue.destination as? ViewController
        vc?.city = self.city
    }
}

新问题:

为什么输入错误的信息时键盘会冻结?

这是与通过程序传递的流程紧密相关的基本代码。

在键盘上按回车键

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    searchit()
    textField.resignFirstResponder()
    return true;
}

返回中使用的函数

func searchit() {


    city = searchBox.text!.replacingOccurrences(of: " ", with: "+")

    AudioServicesPlaySystemSound(1520)

}

从文本字段中获取信息时发生的争夺

override func prepare(for segue: UIStoryboardSegue, sender: Any?)
{
    if segue.destination is ViewController
    {
        let vc = segue.destination as? ViewController
        vc?.city = self.city
    }
}

用于从API接收数据和错误的功能

func makeGetCall() {
    let jsonUrlString = "http://api.team.org/data/2.5/baseball?q=" + city + ",us"
    guard let url = URL(string: jsonUrlString) else {
        print("Error: cannot create URL")
        return

    }

1 个答案:

答案 0 :(得分:1)

简短的回答是“您不这样做”。调用segue时,系统会调用prepare(for:sender:)方法。

您可以将按钮直接链接到另一个视图控制器,并将其设置为触发序列,也可以从按钮的IBAction方法调用performSegue(withIdentifier:sender:)。 (如果您控制从某个按钮拖到情节提要板中的其他场景,则Xcode会为您提供一个按钮附加按钮。否则,您可以连接普通的IBAction方法并从该代码中调用performSegue(withIdentifier:sender:) IBAction。)

一旦触发segue,系统就会调用您的prepare(for:sender:),以便您可以将所需的任何信息传递给segue目的地。

关于您在评论中问的第二个问题:“ ...如果输入了错误的信息,键盘会冻结(无法键入或删除任何内容),为什么会这样?您可能应该发布一个新问题,在哪里为第二个视图控制器提供代码,以及在输入“错误信息”时应该发生什么以及出什么问题的详细描述。 (我们不知道您在说什么信息,是什么使某些信息出错,而某些信息正确,或者您的代码在输入错误的信息时可能会感到困惑。)