在我的测试项目中,我有一个ViewController和一个嵌入在导航控制器中的TableViewController控制器。 ViewController是主视图,用户可以导航到TableViewController,然后返回ViewController。
我正在使用'推送'从ViewContoller> TableViewController开始时的segue,当用户希望返回ViewController时,使用[self dismissViewControllerAnimated:YES completion:nil];
解除TableViewController。
在ViewController中,我有一个按钮可以更改标签上的文字:
-(IBAction)onButtonPress:(id)sender {
_myLabel.text = @"New Label Text";
}
导航到TableView,然后返回ViewController时, _myLabel.text中的更改已丢失,原始文本已恢复。在视图之间导航时,确保保留UI数据的最佳方法是什么?我可能在这个项目中只有一个标签,但在某些时候我会有很多UI元素,例如,当用户导航然后返回时需要保持页面加载的WebView。
您认为实施此方法的最佳方法是什么?
感谢您的时间。
答案 0 :(得分:0)
首先,View是您的数据表示,任何数据都是您的模型。因此,您可以使用其实体和值存储Model。您的控制器管理数据以在View上表示它或根据View中的用户操作更改Model。
因此添加一些Model对象来存储_myLabel.text
。并将此对象用于应用程序中的两个控制器。
答案 1 :(得分:0)
尝试删除ViewWillAppear
或ViewDidAppear
方法中的文字设置,并将其放入ViewDidLoad
。