我的应用程序中要求在视图控制器中添加自定义新文本字段,即视图A. 字段详细信息将填入另一个视图,即在我们单击添加字段按钮时被推送的视图B. 到目前为止,我正在推送添加文本字段按钮的视图,并且当完成按钮上的所有字段详细信息再次填满时,我正在推送前一个视图控制器的新实例,即View A. 我的文本字段已添加,但现有的所有数据都从视图A上的其他字段中删除。 我尝试在完成按钮上弹出视图,但它不会在视图A上创建新的文本字段,尽管所有字段数据都是完整的。
那么有没有办法重新创建弹出的完整视图,以便创建新的文本字段,同时我的前一个视图控制器中的数据也不会丢失。
答案 0 :(得分:0)
如果在UINavigationController中使用推/弹机制,以前的数据永远不会丢失。您的控制器层次结构应该是这样的;
UINavigationController - > FirstViewController - > DetailViewController
<强> FirstViewController 强>
DetailViewController *dvc = [self.storyboardinstantiateViewControllerWithIdentifier:@"DetailViewController"];
[self.navigationController pushViewController:mv animated:YES];
<强> DetailViewController 强>
[self.navigationController popViewControllerAnimated:YES];
或者你可以通过连接在故事板上做到这一点。
答案 1 :(得分:0)
您应该回弹到之前的ViewA,这样您就不会丢失在那里输入的数据,而是在代码中添加新的文本字段。您可以使用从完成按钮调用的方法在ViewB中创建委托协议(您可能需要一个可以设置的标记,因此如果您只想创建一个文本字段,则只调用该方法一次)。在ViewA中实现该方法将创建文本字段并将其添加到适当位置的视图中。