如何在具有相同类(.h 和 .m 文件)的两个模态分隔视图中使用变量?



我试图在两个视图控制器中使用变量(birthDateLabel),它们通过模态分开,但使用相同的视图控制器类(CreateAccountViewController)。标签在它被设置的视图中工作,但在[self dismissViewControllerAnimated:YES completion:nil];运行后,变量被重置,我如何保留它?

操作顺序:

  1. CreateAccountViewController的第一个实例被运行
  2. 一个按钮被点击到一个新的CreateAccountViewController实例,但是这个实例有一个不同的视图,用UIDatePicker来设置birthDateLabel变量。
  3. 设置birthDateLabel
  4. 用户点击done,然后运行遣散viewcontrolleranimated
  5. 应用程序在CreateAccountViewController的第一个实例上更新一个UILabel

步骤5是不工作的,如果我把标签放在视图上作为选择器,它工作,但是当模态被驳回时,变量被重置。我如何保持模态被驳回后的变量设置?或者我唯一的选择是创建单独的视图控制器类?

我已经尽力解释了,但如果你需要我解释更多,请评论。

标准的方法是使用委托。您的两个控制器都是同一个类的实例,除了它们都有一个名为birthDataLabel的变量之外,这一事实没有任何区别。该变量的值是特定于每个实例的,就像它们属于两个不同的类一样。

所以,你应该用正确的方式来做,也就是在你的第二个实例中创建一个委托协议,让第一个实例在第一次呈现第二个实例时将自己设置为委托

@rdelmar提供了技术上最正确的答案,但如果它只有一个值,您可以简单地使用nsuserdefaults。如果数量开始扩大,创建一个委托可能是一个明智的选择。

最新更新