【问题标题】:How to pass data between different UIViewControllers?如何在不同的 UIViewController 之间传递数据?
【发布时间】:2011-07-13 11:30:36
【问题描述】:

将数据从一个视图控制器传递到另一个视图控制器的最佳方式是什么?

假设我将另一个视图控制器推送到当前视图控制器上。如果我必须为从当前视图控制器推送的视图提供一些数据,我该怎么做?

另外,我如何将数据从推送的视图传递到较早的视图?

到目前为止,我已经通过在每个控制器中声明函数并调用它们来做到这一点。我觉得它很脏,想要一种更清洁的方法来做到这一点。我不想使用 plists 或 sqlite,因为数据并不重要。

【问题讨论】:

  • 是的。在 iphone sdk 中面对这种情况
  • 你试过searching吗?这是一个经常被问到的问题。
  • 我做了,但我仍然找不到答案。

标签: ios objective-c iphone uiviewcontroller


【解决方案1】:

如果数据量很大,则将数据保存在 AppDelegate 中不是一个好主意,因为数据将贯穿整个应用程序生命周期。

为什么不调用新创建的UIViewController 对象的设置器来传递数据,以便在视图离开屏幕或被释放时释放它。

【讨论】:

  • 我很困惑为什么调用属性设置器不是立即给出的答案。
  • 我已经使用了属性设置器。但它有时会出错,并不是设置变量的好方法。
  • 什么错误?为什么你说这不是一个好方法? Setter 是专门在框架中创建的,用于设置变量。
  • 因为要传递变量,我需要将它们声明为各个类的属性。这导致声明了很多变量。此外,正如我所说,所需的数据是临时的,不应实际声明为属性。代码变得非常脏。最重要的是,我必须对每个声明的变量进行内存管理。
  • 为什么不创建一个包含所有变量的“模型”对象。如果操作正确,简单地释放这个对象将导致释放它包含的变量。
【解决方案2】:

您为什么不能尝试在AppDelegate 中创建变量。将该数据提供给AppDelegate 的变量并在应用程序中的任何位置获取它,或者UIViewControllers 您将获得该数据。该值将被分配到应用程序委托的变量,直到 application 的 termination。

试着从已经问过几次的人那里寻求帮助Pass Data Between Several Viewcontrollers in a App.

希望你明白我的意思.....祝你好运!

【讨论】:

    猜你喜欢
    • 2014-05-22
    • 2014-10-06
    • 1970-01-01
    • 1970-01-01
    • 2016-01-22
    • 2020-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多