【问题标题】:How to share data between view controllers managed by tab bar如何在标签栏管理的视图控制器之间共享数据
【发布时间】:2014-03-06 12:41:32
【问题描述】:

我有三个由标签栏控制器管理的视图,我希望在这三个视图之间共享数据(我有一个单独的登录屏幕,可以将数据传递给第一个视图,但我的第二个视图需要利用其中的一些数据)。在不同视图之间共享数据的最佳方式是什么?

【问题讨论】:

  • 在这种情况下你应该考虑全局变量。
  • @pawan 什么是做全局变量的正确方法。我在我的第一个视图的头文件中定义了一个静态 nsdictionary,并在第二个视图中包含了 .h 文件,但由于某种原因,数据没有保留
  • 您有许多选项,例如 NSUserDefaults、AppDelegate、全局类等。请查看global variable
  • NSUserDefaults 似乎运作良好

标签: objective-c uitabbarcontroller


【解决方案1】:

你的问题太笼统了。有很多方法可以解决这个问题,你如何做取决于你想要达到的目标。例如,您可以创建一个对象来保存此数据并将其设置为每个控制器的属性。您还可以使用 NSNotifications 让控制器知道系统事件并将相关数据放在 userInfo 字典中。其他设计涉及使用单例或委托。

因此,您需要真正清楚自己想要什么,编写代码,如果/当您遇到问题时,请与我们联系。或者,如果您的问题更多关于设计,您可能需要考虑在 Programmers 上发帖。

【讨论】:

  • 嗯,具体来说,我在第一个视图控制器中有一个 nsdictionary,其中包含学校课程列表,我想在第二个视图控制器中显示这些课程。但是,我不知道在第二个视图控制器中访问该数据的最佳方法是什么。
  • @drekka 我想知道您是否介意稍微详细说明一下如何创建一个可以成为多个控制器属性的对象。
猜你喜欢
  • 2020-05-18
  • 1970-01-01
  • 2017-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多