[英]How do I link 2 view controllers? - Swift
我是Swift的新手,正在尝试向先前的viewController
的数组添加string
。 在我的主视图控制器中,我有此方法来声明viewController
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
var newSoundViewController = segue.destinationViewController as! NewSoundViewController
newSoundViewController.previousViewController = self
}
在NewSoundViewController
,我有一个将string
添加到先前viewController
的数组中的viewController
。 这是该代码:
@IBAction func saveTapped(sender: AnyObject) {
var sound = Sound()
sound.name = soundTextField.text
self.previousViewController.sounds.append(sound)
self.dismissViewControllerAnimated(true, completion: nil)
}
您可以为此做一些事情:
-Unwind segue( Unwind segues是做什么的,以及如何使用它们? )
-Delegate:您可以创建@protocol并在其中定义方法,声明委托(第二类),在第一类中遇到协议,然后只需调用self.delegate.thatMethod
。
为了完善起见,您可以使用以下几种方法:
-单班
-核心数据。
展开同步是您解决方案的最佳选择,因为您需要在彼此相邻的两个控制器之间进行通信。 它们不需要彼此相邻,而是可以位于同一导航堆栈中(感谢@ABakerSmith)
当您需要在远程控制器之间进行通信时,委托非常有用。
Singleton通常用于配置,而Core数据则类似于数据库。 最后两个不适用于您的情况,因此我将使用放松的顺序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.