使用 segue 在 swift 中传递变量

Passing variable in swift with segue

我正在使用 segue 在 xcode 应用程序中打开一个新的 window。 segue 是正确的,当我点击按钮时,会显示新的 window 。 我想将一个字符串变量从 FirstViewController 传递到 DetailViewController,但我无法在 DetailViewController 中设置该变量。 这是 FirstViewController 中的代码:

if control == view.rightCalloutAccessoryView {

            func prepare(for segue: UIStoryboardSegue, sender: Any?) {
                        let controller = segue.destination as! DetailViewController
                        controller.Name = "test"
            }

            performSegue(withIdentifier: "showdetail", sender: self)
           }

这是 DetailViewController 代码

class DetailViewController: UIViewController, WKNavigationDelegate {
    var Name: String = ""
     override func viewDidLoad() {
      super.viewDidLoad()
      print(Name)
    }
}

我哪里做错了?

方法 prepare(for 必须在 class 的顶层。

并且请根据指南以小写字母开头的变量命名

func someMethod()
{
    if control == view.rightCalloutAccessoryView {
       performSegue(withIdentifier: "showdetail", sender: self)
    }
}

func prepare(for segue: UIStoryboardSegue, sender: Any?) {
   let controller = segue.destination as! DetailViewController
       controller.name = "test"
   }
}