我是swift的初学者,我在IOS中制作了一个转换器应用程序,我需要一个历史转换,所以每次我做一次转换我都希望将结果传递给另一个viewcontroller。 我试过文件但没有成功,然后我尝试了Segue和Prepareforsegue,但问题是我只想存储我不想显示viewcontroller的数据。 有人可以帮帮我吗? 提前致谢
答案 0 :(得分:1)
当您使用故事板时,请在prepareForSegue中保存对被叫视图控制器的引用。
当您不使用故事板时,您自己创建被调用的视图控制器,并且您可以通过调用其公共设置器将任何数据传递给被叫视图控制器。 (如果需要,创建它们)
当你想避免他们的类强耦合时,将数据传回给调用视图控制器会有点棘手。这是一个很好的OOP模式,以避免这种情况。
为此声明一个调用VC必须实现的协议(符合)。并实施协议。 在被调用的VC中声明对该协议的对象的引用。 (不是对调用VC类的引用,而是对协议的引用)。当xy是用于协议目的的有意义的名称时,您可能希望调用引用委托或xyDelegate。这是因为这种模式称为委托模式。
委托模式在cocoa和cocoa touch框架中非常常见。因此,有必要以适当的方式实现这一点,避免类的强耦合,以便习惯它。
顺便说一句,当你尝试搜索SO时,你会发现这个问题的1000个答案。
由于您不想直接显示视图控制器,因此您可能希望使用instantiateViewControllerWithIdentifier
和storyboardWithName
来熟悉自己,以获取对故事板的引用。