当前位置: 首页 > 知识库问答 >
问题:

在Swift中两个以上的viewcontrollers之间传递数据

相野
2023-03-14

我的应用程序包含5个ViewControllers的TabBar控制器可以单击每个viewcontrollers中的一个按钮,该按钮将弹出另一个视图,用户可以在其中选择一个设置。按钮(被点击)应该根据每个ViewController中选择的设置来改变其背景。因此,如果用户点击VC1中的按钮并选择设置,该信息应该传播到所有其他VC中,以便按钮具有相同的背景。

我正在使用故事板,我知道这很容易在2VC之间使用segues、协议、闭包...我找不到一个合适的方法把信息传播给2个以上的风投。

我能想到的唯一解决办法就是使用userdefaults。我会保存一个关于按钮设置的信息,然后在每个VC中调用Viewwillincere,按钮的背景将根据UserDefaults中的值设置。请问有更好的解决办法吗?

编辑:

正如@cora在评论中提到的,我能够使用通知中心解决这个问题。

共有1个答案

颜举
2023-03-14

您有几个选项,包括:

  • 将选项卡控制器的数组传递给“弹出设置”控制器,并直接调用每个选项卡控制器中的“SettingSelected”函数
  • 使用协议/委托模式,您可以在“弹出设置”控制器中创建委托数组。
  • 您可以使用通知中心。
  • 您可以对按钮进行子类化,并使用UIExpanage代理。

使用哪种方法将取决于许多因素,基于您需要做的事情(是否有其他“设置”?还是只有按钮背景?)

您可能希望搜索swiftusingthemes以查看各种不同的方法。

 类似资料:
  • 我正试图将数据从第一个ViewController发送到第二个ViewController。 然后我尝试将它发送到我的另一个ViewController: 致命错误:在展开可选值时意外发现nil 我的第二个视图控制器:

  • 我想把我的数据传递给其他的viewcontroller,但我做不到。我的密码在下面。ViewControllers的屏幕截图在这里。当用户写出他们的名字和密码时,我想传递另一个用户的数据,但他们之间还有一个viewcontroller。我认为这是一个问题,但我可以移除这个额外的视图控制器,所以我想了解如何才能把这些数据传递给其他的一个? 第一个viewcontroller的代码 第二个viewco

  • 问题内容: 我有两个 -我有和同赛格瑞“模式” -我有与(回FirstVC): 我创建的委托为: 下一个: 我的函数,在此函数中,我的委托用作: FirstVC: 请帮助我解决这个问题。 问题答案: 1)您需要将委托设置为prepareForSegue: 更新: 2)设为可选

  • 我有两个viewController,分别命名为viewController和我想获取数据并使用委托将其发送到secondViewController。另外,我在secondViewController中有一个数组,当每个数据来自VC1时,它必须存储数据,如; segue1,第一个数据来了->arrayElements{firstData}segue2,第二个数据来了->arrayElements

  • 我对如何在两个模型之间传递数据有疑问。 所以我想把状态从单元传递到主模型,并在那里进行反应。例如发送请求。

  • 我试图将一个活动(LensActivity)中的ArrayList中的值传递给我的主活动上的TextView。在这个网站上,我找到了Intent方法并进行了实验,但似乎无法传递它,信息被提取到字符串lensString中,并传递到Intent,但在主活动中似乎没有传递或获取TextView,在一些实验中,由于getIntent在主活动中,我得到了一个空指针。 这是LensActivity的代码,它