在 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 应用程序中传递给用户?