我有两个视图控制器,一个和两个。我从VC一到VC二。在VC 2上,我选择一些存储在数组中的数据。当我按下导航栏上的“返回”按钮时,我想将该阵列发送回VC One。
使用Swift和Storyboards做到这一点的最佳方法是什么?
谢谢!
如果要使用“完成”和“取消”按钮(有点像选择器)来显示模式视图,则在展开segue方法期间获取值可能是最简单的。
假定您要使用导航控制器的本机“后退”按钮,则最佳实践可能是实施VC One可以遵循的协议,并在选择VC Two上的数据后立即更新VC One。就像是:
在VCTwo.swift中:
protocol VCTwoDelegate { func updateData(data: String) } class VCTwo : UIViewController { var delegate: VCTwoDelegate? ... @IBAction func choiceMade(sender: AnyObject) { // do the things self.delegate?.updateData(self.data) } ... }
并在VCOne.swift中:
class VCOne: ViewController { ... override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if segue.identifier == "VCTwoSegue" { (segue.destinationViewController as VCTwo).delegate = self } } ... } extension VCOne: VCTwoDelegate { func updateData(data: String) { self.internalData = data } }