Ios 切换时如何在UITabBar视图之间传递数据?

Ios 切换时如何在UITabBar视图之间传递数据?,ios,uiview,uitabbar,Ios,Uiview,Uitabbar,我有3个UIAbbar项控制3个UIView。其中一个是名为a的设置视图,我在该视图中设置了一些值,并将输入的值传递给另一个名为B的视图。现在我已经有了委托方法,但我使用按钮传递数据。现在,我想在选择视图B的UITabBar项时自动传递它。只是从A传递到B,而不是相互传递。谢谢。为什么不使用NSUserDefaults。我已将字符串从一个视图传递到另一个视图 下面是您应该在ViewController A的DidLoad方法中编写的代码 NSUserDefaults *defaults = [N

我有3个UIAbbar项控制3个UIView。其中一个是名为a的设置视图,我在该视图中设置了一些值,并将输入的值传递给另一个名为B的视图。现在我已经有了委托方法,但我使用按钮传递数据。现在,我想在选择视图B的UITabBar项时自动传递它。只是从A传递到B,而不是相互传递。谢谢。

为什么不使用NSUserDefaults。我已将字符串从一个视图传递到另一个视图

下面是您应该在ViewController A的DidLoad方法中编写的代码

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setValue:@"xyz" forKey:@"name"];
[defaults synchronize];
用ViewController B的DidLoad方法编写的代码

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *temp = [defaults valueForKey:@"name"]; 
NSLog(@"temp == %@",temp);
试试这个

NSArray *viewControllers = self.tabBarController.viewControllers;
ViewControllerB *b = viewControllers[1];
b.yourValue = yourValue;
你听说过吗

单身汉

它们用于在Obj-c中的类之间共享数据。有关如何设置它们的指南,请参阅:

这将有助于保持类的独立性,并实施OO方法来共享数据

编辑:


我通过快速的谷歌搜索找到了这个网站,有大量的资源可以帮助你解决这个问题。

使用singleton类,这对你来说是一个希望如果你已经有了一个代表,问题是什么?是的。我不想使用按钮传递数据。我只想输入值,然后点击视图B的选项卡项,数据将自动传输。请参见我的回答,代理不应用于这种类型的“共享”。我是否可以使用ViewWillDemouse代理并执行方法?编辑了我的问题。您需要用DidLoad方法编写代码。您看到链接指南上的注释了吗?单例是面向对象的全局变量和所有需要的变量的等价物。或者单身是全球性的,应该尽量避免。它们创建了直接的实现依赖关系,当涉及到单元测试时,它们可能是一场噩梦。