Prepare For Segue 和 Prepare for Unwind 之间的区别 - Swift 3.0
Difference Between Prepare For Segue And Prepare for Unwind - Swift 3.0
prepare for segue 和 prepare for unwind 有什么区别?我已经将这两个实现到 Xcode 项目中,它们都得到了相同的结果。我实现这两个功能的代码是:(with prepare for unwind)
override func prepare(for unwind: UIStoryboardSegue, sender: Any?) {
let variableUnwind = ("Whosebug")
if unwind.identifier == "toFirstViewController" {
let hello = unwind.destination as! ViewController
hello.username = textField.text!
print(hello.username)
}
}
和:(准备平仓)
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let variableUnwind = ("Whosebug")
if segue.identifier == "toFirstViewController" {
let hello = segue.destination as! ViewController
hello.username = textField.text!
print(hello.username)
}
}
它们都是同一种方法。不管参数名是unwind
还是segue
,选择器都是prepare(for:sender:)
.
如果您尝试在同一个 class 中实现它们,您将收到错误:无效重新声明 'prepare(for:sender:)' 与第二个。
我建议使用 prepare(for segue: UIStoryboardSegue, sender: Any?)
,因为 1) 这就是自动完成建议的内容,以及 2) 所有转场都会经过那里,而不仅仅是展开的转场。所以调用参数 segue
.
是有意义的
prepare for segue 和 prepare for unwind 有什么区别?我已经将这两个实现到 Xcode 项目中,它们都得到了相同的结果。我实现这两个功能的代码是:(with prepare for unwind)
override func prepare(for unwind: UIStoryboardSegue, sender: Any?) {
let variableUnwind = ("Whosebug")
if unwind.identifier == "toFirstViewController" {
let hello = unwind.destination as! ViewController
hello.username = textField.text!
print(hello.username)
}
}
和:(准备平仓)
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let variableUnwind = ("Whosebug")
if segue.identifier == "toFirstViewController" {
let hello = segue.destination as! ViewController
hello.username = textField.text!
print(hello.username)
}
}
它们都是同一种方法。不管参数名是unwind
还是segue
,选择器都是prepare(for:sender:)
.
如果您尝试在同一个 class 中实现它们,您将收到错误:无效重新声明 'prepare(for:sender:)' 与第二个。
我建议使用 prepare(for segue: UIStoryboardSegue, sender: Any?)
,因为 1) 这就是自动完成建议的内容,以及 2) 所有转场都会经过那里,而不仅仅是展开的转场。所以调用参数 segue
.