【发布时间】:2016-11-01 19:18:12
【问题描述】:
所以我正在开发一个应用程序,同时也在学习 swift。我已经弄清楚如何将数据从 secondViewController 发送到 firstViewController。基本上我已经将“完成”按钮链接到 firstViewController,所以当我按下“完成”时,它会打开第一个 viewController 的新窗口并提供我传递的数据。
但是,我正在寻找一种方法来更新 firstViewController,而无需使用不同的 segue 打开它的另一个窗口。
最好的解释方法是我的 firstViewController 有一个“添加”按钮,可以打开 secondViewController。这个 viewController 有两个文本字段,你在里面写东西(我想让这两个文本框中写的东西出现在第一个 viewController 上)然后当你按下完成时,第二个 ViewController 消失,你又回到了 firstViewController。
这是我正在使用的代码: (在第二个ViewController中)
override func prepare(for segue: NSStoryboardSegue, sender: Any?) {
var destinationviewcontroller : ViewController = segue.destinationController as! ViewController
destinationviewcontroller.LabelText = weblinklabel.stringValue
}
显然labeltext 是第一个视图控制器中的一个标签,它显示了在第二个视图控制器的那些文本字段中写入的内容。
问题是当我使用情节提要并简单地从“完成”按钮拖动到 firstViewController 时,它会在新窗口中打开 firstViewController 并使用新数据/更新 labeltext。我希望 secondViewController 在我按下“完成”时关闭,并且更新的标签会出现在 firstViewController 上,而不会在新窗口中打开。
这有点难以解释,所以如果您需要更多细节来澄清,我将非常乐意提供!
提前致谢!
【问题讨论】:
-
听起来你应该使用unwind Segues
标签: swift macos segue viewcontroller