1

我目前正在设计一个小型应用程序,其中我有: - 1 个菜单(图形按钮) - 1 个内容(基本上是一个视图)显示为每个按钮的弹出框

用户触摸UIButton ,使用Interface Builder设计的内容(并由其自己的视图控制器驱动)显示在UIPopoverController中。用户切换一些UISwitch,滑动一些UISliders,然后通过单击外部(或在所考虑的 UIPopoverController 内容的关闭UIButton上)关闭UIPopoverController

如果用户触摸同一个按钮,当然会出现UIPopoverController,之前的值是新修改的

问题 1: 在哪里存储数据(我的意思是在运行时)? 因为,每个精心准备的内容 UI 都有自己的视图控制器,更自然的方式可能是将它们放在那里。但是解散 UIPopoverController 也会解散数据......

问题 2: 如何让我的 UIPopoverController 提取最新数据(来自以前的用户或逻辑更改)?

任何有关最佳实践的线索将不胜感激

4

1 回答 1

1

听起来你应该做的是让主视图控制器负责显示弹出框存储数据。一些应该有帮助的事情:

  • 在您的主视图控制器中,实现UIPopoverControllerDelegate 协议并将其作为弹出框的委托。
  • 在视图控制器上实现一些属性,允许您获取和设置它们的值(开关的状态、滑块的值等)
  • 当弹出框控制器即将关闭时(实现- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController委托方法),从弹出框内的导航控制器中获取要保存的数据。
  • 在显示弹出框之前,设置视图控制器上的所有属性,这样它将拥有最新的数据。
于 2012-04-30T19:53:52.053 回答