我有两个视图控制器的app,我在我的第一个视图控制器中通过Label和TextField中的NSStrings键入值,当我按下导航按钮时,转到我的第二个视图控制器。当我回到我的第一个视图控制器时,我输入了早期值。但是当我接下来我去第二个视图控制器时 - 通过Label和TextField中的NSStrings输入的值消失。如何解决这个值保存的问题?我试图使用强大和复制属性,但这对我没有帮助。 我使用segue和storyboards,segue with modal type,我使用1个导航控制器作为第一个视图控制器。我只获得了模态类型的代码。第一个视图控制器是导航的根
UPDATE 用户在第一个和第二个VC中输入NSSting等值。在第一个和第二个VC的导航栏上有条形按钮,并且该用户将抛出VC
在第一个VC中键入数据 - >转到第二个 - >在第二VC中键入数据 - >转到第一个(它保存的数据) - >转到第二个(它丢失了数据)
我使用该代码从第二个返回第一个VC:
[self dismissViewControllerAnimated:YES completion:nil];
答案 0 :(得分:0)
Segues总是实例化新的控制器,所以当你第二次进入第二个控制器时,你实际上是去了那个控制器的新实例。如果要转到同一个实例,则不能使用segue。相反,您应该在第一个控制器中创建一个指向第二个属性的属性,第一次执行该属性,第一次转到它,但不在任何后续演示中(放入if子句,如果控制器已经存在,提出它,如果没有,首先实例化然后呈现它)。下面的示例假设您有一个类SecondViewController的自定义控制器,并且您已在故事板中为其指定了标识符“Second”。
@property (strong,nonatomic) SecondViewController *secondVC;
-(IBAction)presentSecondController:(UIButton *) sender {
if (! self.secondVC) {
self.secondVC = [self.storyboard instantiateViewControllerWithIdentifier:@"Second"];
}
[self presentViewController:secondVC animated:YES completion:nil];
}