首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >iOS开发-视图如何动态反映应用程序内的设置

iOS开发-视图如何动态反映应用程序内的设置
EN

Stack Overflow用户
提问于 2013-02-13 17:40:40
回答 2查看 277关注 0票数 4

我是ios开发的新手,做了一个简单的应用程序。

它包含一个根视图控制器(表视图由单元格列表组成,单击单元格指向内容视图)和另一个应用内设置视图控制器包含几个简单的UI控件,如switch,slider,用于保存应用程序相关的设置。在用户更改某些内容后,应用程序只需写入文件以进行持久化。

我的问题是,如何让其他视图控制器反映设置中的更改?

我的想法是,当应用程序加载时,我会将所有设置初始化到一个字典中,并将其保存在内存中。当发生变化时,除了写入文件之外,我还会更新该字典。每次显示我的内容视图时,我都会要求它始终加载该设置字典。

例如,如果用户在设置视图中更改字体大小,我希望内容视图控制器收到通知,并在下次显示给用户时立即更改字体大小。

我不知道是否应该使我的自定义委托/数据源。

感谢您的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-13 17:47:12

你应该使用NSUserDefaults来存储和检索应用程序设置。这正是它的目的所在,它将自动将设置保存到磁盘,并在以后为您检索它们。

至于在设置更改时更新应用程序的其他部分,您有许多选择。在iOS上,一种相当简单的方法是在任何需要了解设置更改并对设置更改做出反应的视图控制器中注册NSUserDefaultsDidChangeNotification。然后,当收到该通知时,更新以反映新设置。

票数 4
EN

Stack Overflow用户

发布于 2013-02-13 18:17:40

这听起来像是当另一个ViewController中的某些东西发生变化时,您试图向不同的ViewControllers发送通知。您有两个选择:

  1. Multiple ViewControllers:您可以使用NSNotificationCenter发布通知,任何正在观察该特定通知的ViewController都会收到通知。更多信息:https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Notifications/Introduction/introNotifications.html#//apple_ref/doc/uid/10000043i
  2. Single ViewController:如果只需要通知单个ViewController,则使用委派来通知ViewController。更多信息:https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CocoaFundamentals/CommunicatingWithObjects/CommunicateWithObjects.html
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14859624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文