0

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

操作顺序:

  1. 运行 CreateAccountViewController 的第一个实例
  2. 点击一个按钮可以转到 CreateAccountViewController 的一个新实例,但是这个实例有一个不同的视图,它带有一个 UIDatePicker 来设置birthDateLabel 变量。
  3. 设置了birthDateLabel
  4. 用户点击完成并运行dismissViewControllerAnimated
  5. 该应用程序在 CreateAccountViewController 的第一个实例上更新 UILabel

第 5 步是行不通的,如果我将标签放在视图上作为选择器,它可以工作,但是当模式被关闭时,变量会被重置。模态关闭后如何保持变量集?还是我唯一的选择是创建单独的视图控制器类?

我尽力解释这一点,但如果您需要我解释更多,请发表评论。

4

2 回答 2

2

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

因此,您应该以正确的方式进行操作,即在您的第二个实例中创建一个委托协议,并在第一个实例首次呈现第二个实例时将其自身设置为委托。

于 2013-05-07T21:28:56.967 回答
1

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

于 2013-05-07T21:41:22.737 回答