在弹出窗口视图中从tableViewController访问父视图控制器

时间:2011-06-03 16:09:37

标签: objective-c cocoa-touch ios uitableview uipopovercontroller

我正在尝试在tableview控制器中实现一个弹出窗口视图。我的目的是让用户从表格列表中选择一个选项,如下所示。

enter image description here

请注意,我的弹出窗口视图实际上显示来自单独的表视图控制器的数据。我正在通过以下初始化方法创建popover视图控制器

self.popOverViewController = [[UIPopoverController alloc]initWithContentViewController:optionsTableViewController];

用户选择一个选项,例如“Hottest All Time”后,控件应该从tableview Controller(在弹出窗口视图中)传递回MAIN表视图控制器(父视图),以便触发表reloadData方法

查询:有没有办法将控件从弹出控制器中的tableview控制器返回到MAIN tableview控制器? 我是否必须使用委托方法来执行此操作?

1 个答案:

答案 0 :(得分:4)

我见过的两种方法大致是标准的票价:

  • 为类类型的optionsTableViewController创建一个委托协议,让控制器创建popover实现它并在发出popover时将自己设置为委托
  • 使用NSNotificationCenter(如果你有一对多的消息,它实际上符合事物的预期目的,如果你有一个设置影响一堆不同控制器的弹出窗口,可能就是这种情况)当用户请求弹出窗口时,你真的不关心哪个是可见的)