在 iPhone 编程中传递 Inter-ViewController 参数...如何?

Posted

技术标签:

【中文标题】在 iPhone 编程中传递 Inter-ViewController 参数...如何?【英文标题】:Inter-ViewController parameters passing in iPhone programming... how to? 【发布时间】:2010-04-26 14:38:12 【问题描述】:

我读到:iPhone: How to Pass Data Between Several Viewcontrollers in a Tabbar App 并想知道两者之间有什么区别

[[UIApplication sharedApplicaton] delegate]

extern struct* global

?

从概念上讲,我看不出 [[UIApplication sharedApplicaton] delegate] 不是一个全球性的东西。事实上,现在使用脏全局结构 * 时,这减轻了内疚感。

我很快就要开始一个新项目了。所以,我用这个休息来问一个问题:是否有任何最佳实践代码示例来说明如何在两个 ViewController 之间(但不是全局)共享数据?

让我举个例子:

这是一个游戏 有一个 NSString *name 来存储玩家的名字 有一个 NSInteger 分数来存储玩家当前的分数 GameMainViewController 将更新并显示分数 在 GameSettingViewController 中,有一个用于编辑名称的文本字段和一个用于重置分数的按钮 GameMainViewController 负责设置默认名称(如果为 nil),退出时保存名称和分数,启动时加载两者(如果存在)

所以

我应该把“姓名”和“分数”放在哪里? ViewController 如何访问和更改值

谢谢!

【问题讨论】:

【参考方案1】:

您可以将姓名和分数存储在NSUserDefaults。

检索一个项目:

NSString *name = [[NSUserDefaults standardUserDefaults]objectForKey:@"name"];

设置项目:

[[NSUserDefaults standardUserDefaults]setObject:@"Horace" forKey:@"name"];

此外,如果这是您希望在应用启动时保留的数据,您可能需要将其归档到 plist 中。

【讨论】:

以上是关于在 iPhone 编程中传递 Inter-ViewController 参数...如何?的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式将文本字段值传递给另一个视图中的标签

Apple 推送通知如何在 iPhone 应用程序中传递给用户?

在 UITable+iphone 中选择特定行时将拇指图像传递给其他 uiview

如何将按钮标签传递给 prepareForSegue

iPhone核心数据:如何在NIBS之间传递和获取实体

如何在iphone中将值从一个标签栏传递到另一个标签栏