我的应用程序包含5个ViewControllers的TabBar控制器可以单击每个viewcontrollers中的一个按钮,该按钮将弹出另一个视图,用户可以在其中选择一个设置。按钮(被点击)应该根据每个ViewController中选择的设置来改变其背景。因此,如果用户点击VC1中的按钮并选择设置,该信息应该传播到所有其他VC中,以便按钮具有相同的背景。
我正在使用故事板,我知道这很容易在2VC之间使用segues、协议、闭包...我找不到一个合适的方法把信息传播给2个以上的风投。
我能想到的唯一解决办法就是使用userdefaults。我会保存一个关于按钮设置的信息,然后在每个VC中调用Viewwillincere,按钮的背景将根据UserDefaults中的值设置。请问有更好的解决办法吗?
编辑:
正如@cora在评论中提到的,我能够使用通知中心解决这个问题。
您有几个选项,包括:
UIExpanage
代理。使用哪种方法将取决于许多因素,基于您需要做的事情(是否有其他“设置”?还是只有按钮背景?)
您可能希望搜索swiftusingthemes
以查看各种不同的方法。