在两个不同的NSViewControllers之间切换数据

时间:2018-02-07 16:16:17

标签: swift macos navigation

我是Swift和OSX开发中的绝对新手,如果我的问题太过教练,我很抱歉。我想了解NSViewControllers之间的导航原理。

我有我的默认SecondViewController,登录名和密码字段以及登录按钮。单击按钮后,返回令牌。现在我试图改变"查看"到@IBAction func loginButton(_ sender: Any) { .... } 并保存某处令牌,我将来需要它。我该怎么做?并且可以在功能中执行此操作?:

GET

谢谢!

1 个答案:

答案 0 :(得分:2)

您需要使用httpRedirect="true"来执行此操作。

首先在segues使用故事板编辑器之间建立segues连接。之后,您需要在故事板的属性检查器上为ViewControllers提供标识符。然后在您的代码中,您可以通过segues调用新的ViewController,如下面的代码所示。

使用此代码,您可以使用按钮传递数据:

segue

使用此代码,您将使用class ViewController: NSViewController { var dataToPass: String = "DataToPass" override func viewDidLoad() { super.viewDidLoad() } @IBAction func loginButton(_ sender: Any) { performSegue(withIdentifier: NSStoryboardSegue.Identifier(rawValue: "segueIdentifier"), sender: self) } override func prepare(for segue: NSStoryboardSegue, sender: Any?) { if segue.identifier!.rawValue == "segueIdentifier" { let destinationViewController = segue.destinationController as! ViewController2 destinationViewController.dataToReceive = dataToPass } } } class ViewController2: NSViewController { var dataToReceive: String override func viewDidLoad() { super.viewDidLoad() } }

override viewWillAppear

在这两种情况下,您都需要确保要传递给其他视图控制器的数据不为空。