使用 1 个菜单和许多 UIPopoverController 的基本应用程序的 iOS 设计模式......?

标签 ios design-patterns uibutton uipopovercontroller

我目前正在设计一个小型应用程序,其中包含: - 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/

相关文章:

ios - AppDelegate 文件在哪里适合 MVC?

Mercurial:忘记特定扩展名的文件

ios - 如何在一行中正确添加两个按钮和一个标签?

java - 设计模式 - 一个公共(public)类利用许多隐藏类

ios - 存档 iOS 应用程序 : no suitable records were found verify your bundle identifier is correct

iphone - IOS - 如何避免键盘在 uiwebview 重新加载时隐藏

ios - 星期几多选 UI

swift - 按钮作为变量

ios - *修改* UIbutton位置(Iphone SDK)

ios - 检测电话调用的开始以在后台发送 JSON