Xcode 推送和弹出视图以保存数据

Posted

技术标签:

【中文标题】Xcode 推送和弹出视图以保存数据【英文标题】:Xcode push and pop view to save data 【发布时间】:2012-07-09 20:56:39 【问题描述】:

我正在尝试将数据从 FirstView(一个文本字段和一个按钮)记录到 SecondView (UiTableView),例如联系人列表。我想简单解释一下我的代码。

我在 AppDelegate.m 中添加了一个带有 TabBar 的 NavigationController;

UINavigationController *pointer = [[UINavigationController alloc] init];
self.window.rootViewController = pointer;
[pointer setNavigationBarHidden:NO];
[pointer pushViewController:self.viewController animated:YES];

我使用了[self.navigationController pushViewController:push animated:YES]; 将数据推送到第二个屏幕,但它总是转到另一个 NavigationController 视图作为带有 BACK 按钮的循环,然后我使用了 [self.navigationController popToRootViewControllerAnimated:YES]; 它不会将数据传递给另一个看法。除非我完全关闭程序并再次打开它。那么有没有办法同时push和pop呢?或者你能告诉我另一种方式吗?

提前致谢。

注意我已经在这个链接中分享了我的代码; Mycode

【问题讨论】:

你传递什么样的数据? 我正在将一个文本传递给 uitableview,这个文本被推送到一个数组中。希望我能理解您的问题。 【参考方案1】:

您可以尝试创建一个管理此数据的singleton 类。然后,您只需在整个代码中调用相同的单例类,它应该在您的应用程序的整个生命周期中保持相同的状态。

或者,更简单的方法是将“myArray”设置为您的 App Delegate 中的属性。然后,在您的类的实现文件中,执行以下操作:

UIApplicationDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
appDelegate.myArray = newArray;

这假设 myArray 和 newArray 已正确初始化。

【讨论】:

避免使用 appDelegate 存储数据。

以上是关于Xcode 推送和弹出视图以保存数据的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式创建的 UINavigationController 推送和弹出问题

如何设置推送和弹出视图控制器流程

将子视图推送和弹出到堆栈的问题

使用导航控制器推送和弹出视图控制器:实现

UINavigationController 推送和弹出后 UIScrollView 子跳转

在动画推送和弹出时,导航项中带有搜索栏的连续视图控制器会导致视图模糊[重复]