我是编码的新手,所以感谢任何帮助!
基本上,构建我的应用程序包括将数据传递给另一个视图控制器。我想要的只是传递数据,而不是用户在物理上查看它也被传递给View Controller。我设置了segues,它可以很好地传递到另一个View Controller。
我在截图中写的代码,例如。 departments
允许查看其他视图控制器上的数据。
我的问题是,我编辑或添加到此行的代码是什么,以便仍然传递数据 - 用户无需在物理上查看控制器也将其传递?我假设某种类型的' *ngFor
'将在这行代码中实现,但是当我这样做时它似乎不起作用。
答案 0 :(得分:1)
Segues旨在转到另一个View Controller。
为了在不移动的情况下将数据从一个视图传递到另一个视图,您可以使用 NSNotificationCentre 或代理。
答案 1 :(得分:0)
调用方法||
时,转换到其他场景的过程已经在进行中(不是直观地)。
为了通过转换传递数据,这是最好的方法。
但是,如果您想将数据传递给视图控制器以便稍后显示,我建议您只需将其存储在变量(可能在您的情况下为数组)中,并在转换时将其提供给目标视图控制器。 您也可以将它存储在两个视图控制器之间的共享变量中(静态属性,...),但我建议您不要这样做。
答案 2 :(得分:0)
回答您的具体问题:
考虑:
您想从ParentViewController创建对ChildViewController的引用。
如果您正在使用Storyboard,则可以通过在InterfaceBuilder中向ParentViewController添加ContainerView来实现此目的。这将创建一个嵌入式视图控制器。通过将您在ParentViewController中添加的基础视图设置为hidden
当 ParentViewController 加载时,prepareForSegue
实际上会被嵌入的 ChildViewController 调用。然后,您可以将其分配给本地属性,以保留对它的引用。
var destViewController: ViewTwo!
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let childVC = segue.destination as? ViewTwo{
self.destViewController = childVC
}
}
func addDataToChildViewController(){
destViewController.textLabel.text = self.textField1.text
...
}
现在,我想指出,在这个庄园中使用ViewController很有可能不是一个理想的解决方案。 ViewControllers用于显示视图。如果你不这样做,那么你可能想重新考虑这个解决方案。
答案 3 :(得分:-1)
您可以尝试设置单例来存储数据:
class DataSingleton {
static let sharedInstance = DataSingleton()
//Add variables to store here
}
//Referencing
let singleton = DataSingleton.sharedInstance
singleton.theVariable