如何通过按钮调用此功能?
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
}
答案 0 :(得分:1)
简短的回答是“您不这样做”。调用segue时,系统会调用prepare(for:sender:)
方法。
您可以将按钮直接链接到另一个视图控制器,并将其设置为触发序列,也可以从按钮的IBAction方法调用performSegue(withIdentifier:sender:)
。 (如果您控制从某个按钮拖到情节提要板中的其他场景,则Xcode会为您提供一个按钮附加按钮。否则,您可以连接普通的IBAction方法并从该代码中调用performSegue(withIdentifier:sender:)
IBAction。)
一旦触发segue,系统就会调用您的prepare(for:sender:)
,以便您可以将所需的任何信息传递给segue目的地。
关于您在评论中问的第二个问题:“ ...如果输入了错误的信息,键盘会冻结(无法键入或删除任何内容),为什么会这样?您可能应该发布一个新问题,在哪里为第二个视图控制器提供代码,以及在输入“错误信息”时应该发生什么以及出什么问题的详细描述。 (我们不知道您在说什么信息,是什么使某些信息出错,而某些信息正确,或者您的代码在输入错误的信息时可能会感到困惑。)