当您创建模态视图时,您正在创建 modalViewController 和 modalView 的新实例。这个新实例对任何其他实例一无所知。有几种方法可以保留这些模态视图控制器先前迭代的信息。
我会怎么做:在主视图中设置占位符,并通过协议和委托设置将用户选择的值传递回主视图。然后,当您转到模态视图时,您可以在显示模态视图之前加载这些变量。
所以假设你有一个包含所有值的字典: {slider = YES, someValue=10,...} 在主视图控制器中创建该字典,第一个打开的,并在其中放置一些默认值。
在您的模态视图控制器中,创建与属性相同的字典。
在您的模态视图控制器中创建一个协议,其方法类似于
- (void) doneEditing:(NSDictionary *)values
将您的第一个视图设置为模态视图控制器的委托,并在doneEditing
弹出模态视图之前将值复制到第一个视图中存在的字典中。
当第一个视图准备好再次呈现模态视图时,在呈现它之前将值复制到模态视图的字典属性。
我希望这能让你朝着正确的方向前进。重要的是要记住,每次你 segue 或创建并呈现一个模态视图时,你正在创建该视图的全新实例,除非你告诉它一些关于它的信息,否则它对前一个实例一无所知。