我试图在两个视图控制器中使用变量(birthDateLabel),它们通过模态分开,但使用相同的视图控制器类(CreateAccountViewController)。标签在它被设置的视图中工作,但在[self dismissViewControllerAnimated:YES completion:nil];
运行后,变量被重置,我如何保留它?
操作顺序:
- CreateAccountViewController的第一个实例被运行
- 一个按钮被点击到一个新的CreateAccountViewController实例,但是这个实例有一个不同的视图,用UIDatePicker来设置birthDateLabel变量。
- 设置birthDateLabel
- 用户点击done,然后运行遣散viewcontrolleranimated
- 应用程序在CreateAccountViewController的第一个实例上更新一个UILabel
步骤5是不工作的,如果我把标签放在视图上作为选择器,它工作,但是当模态被驳回时,变量被重置。我如何保持模态被驳回后的变量设置?或者我唯一的选择是创建单独的视图控制器类?
我已经尽力解释了,但如果你需要我解释更多,请评论。
标准的方法是使用委托。您的两个控制器都是同一个类的实例,除了它们都有一个名为birthDataLabel的变量之外,这一事实没有任何区别。该变量的值是特定于每个实例的,就像它们属于两个不同的类一样。
所以,你应该用正确的方式来做,也就是在你的第二个实例中创建一个委托协议,让第一个实例在第一次呈现第二个实例时将自己设置为委托
@rdelmar提供了技术上最正确的答案,但如果它只有一个值,您可以简单地使用nsuserdefaults。如果数量开始扩大,创建一个委托可能是一个明智的选择。