我目前正在设计一个小型应用程序,其中包含: - 1个菜单(图形按钮) - 1 个内容(基本上是一个 View )显示为每个按钮的弹出窗口
用户触摸一个 UIButton,用 Interface Builder 设计的内容(并由其自己的 View Controller 驱动)显示在 UIPopoverController 中. 用户切换一些 UISwitch,滑动一些 UISliders,然后通过点击外部(或关闭 UIButton 关闭 UIPopoverController> 所考虑的 UIPopoverController 的内容)
如果用户触摸同一个按钮,当然会出现 UIPopoverController,之前的值会被重新修改
问题 1: 在哪里存储数据(我的意思是在运行时)? 因为,每个精心准备的内容 UI 都有自己的 View Controller ,更自然的方法是将它们放在那里。但是关闭 UIPopoverController 也会关闭数据...
问题 2: 我怎样才能让我的 UIPopoverController 提取最新的数据(来自以前的用户或逻辑更改)?
任何有关最佳实践的线索都将不胜感激
最佳答案
听起来您应该做的是让主视图 Controller 负责显示弹出窗口存储的数据。一些应该有帮助的事情:
- 在你的主视图 Controller 中,实现 UIPopoverControllerDelegate Protocol并让它成为弹出窗口的代表。
- 在 View Controller 上实现一些属性,允许您获取和设置它们的值(开关的状态、 slider 的值等)
- 当弹出框 Controller 即将关闭时(实现
- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController
委托(delegate)方法),从弹出框内的导航 Controller 中获取要保存的数据. - 在显示弹出窗口之前,设置 View Controller 上的所有属性,这样它将拥有最新的数据。
关于使用 1 个菜单和许多 UIPopoverController 的基本应用程序的 iOS 设计模式......?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10389610/