繁体   English   中英

如何链接2个视图控制器? -迅捷

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM