【问题标题】:How to pass data between UITabBar views when switching over?切换时如何在UITabBar视图之间传递数据?
【发布时间】:2014-01-29 12:48:08
【问题描述】:

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

【问题讨论】:

  • 使用单例类,对你有希望
  • 如果您已经有委托,有什么问题?
  • 是的。我不想使用按钮传递数据。我想要的是只需输入值并点击视图 B 的选项卡项,数据将自动传输。
  • 看我的回答,代表不应该用于这种类型的“分享”。

标签: ios uiview uitabbar


【解决方案1】:

为什么不使用 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);

【讨论】:

  • 我可以只使用 viewwilldisappear 委托并执行方法吗?
  • 编辑了我的问题。您需要在 DidLoad() 方法中编写代码
【解决方案2】:

你听说过

单身人士

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

http://www.galloway.me.uk/tutorials/singleton-classes/

这将有助于使您的类保持独立并强制执行 OO 方法来共享您的数据。

编辑:

我通过快速谷歌搜索找到了该网站,那里有大量资源可以帮助您。

【讨论】:

  • 您看过链接指南上的 cmets 吗? “单例是 OO 等价的全局变量和所有需要的东西。”或者“单例是全局变量,应尽可能避免。它们会创建直接的实现依赖关系,并且在单元测试方面可能是一场噩梦。”
【解决方案3】:

试试这个

NSArray *viewControllers = self.tabBarController.viewControllers;
ViewControllerB *b = viewControllers[1];
b.yourValue = yourValue;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    • 1970-01-01
    • 2015-12-23
    • 2014-06-18
    • 1970-01-01
    • 2022-01-07
    • 2011-12-07
    相关资源
    最近更新 更多