我只是在满足条件时才尝试将segue从viewcontroller转到2ndviewcontroller。我已经将viewcontroller中的按钮segue连接到2ndviewcontroller。到目前为止,我有:
@IBAction func switchView(_ sender: AnyObject) {
// if a and b's textfields aren't empty
if(!(a.text?.isEmpty)! && !(b.text?.isEmpty)!) {
a1 = a.text!;
b1 = b.text!;
}else{
// do something
}
}
override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool {
if(identifier == "2ndviewcontroller") {
if(!(a.text?.isEmpty)! && !(b.text?.isEmpty)!) {
return true
}
}
return false
}
有了这个,我只能在a和b的文本字段不为空的情况下才能生成segue。这正是我想要的,但我也想将数据从viewcontroller传递到2ndviewcontroller。
func prepForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "2ndviewcontroller" {
let 2ndviewcontroller = segue.destination as! 2ndviewcontroller
2ndviewcontroller.c = a
}
}
}
我使用上面的代码将数据从viewcontroller传递给2ndviewcontroller。问题是我不知道如何将它们组合成两个传递数据,并且只在条件满足时才进行segue。当我有两个函数时,bool函数正确执行,但prepForSegue不传递数据。当我注释掉bool函数时,prepForSegue会传递数据,但是我不能应用条件来制作segue。
编辑:使用下面评论中提供的prepareForSegue方法修复。
答案 0 :(得分:2)
正如评论中所讨论的,方法名称应为prepareForSegue
,而不是prepForSegue
。