在没有segue的情况下在视图控制器之间传递数据[重复]

问题描述 投票:0回答:3

这个问题在这里已有答案:

我用我的设计打了一堵墙。我试图将字符串从一个View Controller传递给另一个。那两个控制器没有与segue连接。我附上了故事板的大纲。我有一种感觉,我唯一的选择是使用Singleton,还是代表可以使用?不使用该方法:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) 

我无法通过segue标识符访问VC1。如果不访问标识符,这怎么可能?

请查看图片,让我知道我有哪些选项以及最适合使用的选项。

ios swift
3个回答
1
投票

如果它是一个像一些字符串或变量的小数据,你可以使用UserDefault或使用该类变量传递数据,如vc2.data = data如何使用UserDefaults How to use UserDefaults in swift?

如果它更像是表或用户列表的数量,你可以在你的包中使用plist商店,可以使用Plist How do I get a plist as a Dictionary in Swift?从任何视图控制器检索

如果两个控制器以某种方式连接,您可以使用委托。代表们: - qazxsw poi

如果您不确定数据何时可用/或基于某些操作发送,您也可以使用通知,或者如果触发了某些操作则发送。

使用Notifications Delegates in swift?传递数据


1
投票

如果以编程方式导航到第二个VC,则可以像这样设置值(第3行)

How to pass data using NotificationCentre in swift 3.0 and NSNotificationCenter in swift 2.0?

0
投票

一种方法是使用导航层次结构来访问视图控制器。

从viewController你要传递数据它的let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil) let newViewController = storyBoard.instantiateViewController(withIdentifier: "newViewController") as! NewViewController newViewController.stringVariable = stringVariable self.present(newViewController, animated: true, completion: nil) 属性应该是tabBarController属于的标签栏的相同实例

VC2
© www.soinside.com 2019 - 2024. All rights reserved.