从contentViewController中解除UIPopoverController?

mem*_*ons 26 iphone cocoa-touch uipopovercontroller ios

如果你想解雇一个弹出窗口 - 例如,从popover的contentViewController中的一个按钮你必须 -

  1. 创建一个对由创建它的视图控制器持有的弹出框的引用
  2. 从contentViewController创建一个通知,让拥有的视图控制器知道它应该被解雇,或者为了相同的目的创建一个委托
  3. 当弹出框准备好被解雇时发送通知或委托消息
  4. 调用dismissPopover:animated通知或委托方法时调用

同时,UIViewController您可以访问模态视图控制器,父视图控制器,导航控制器,拆分视图控制器,标签栏控制器,搜索显示控制器,子视图控制器,呈现视图控制器和呈现的视图控制器.

从popover的contentViewController有更好的方法吗?

Kev*_*Low 29

不幸的是,你必须创建一个弱的属性引用来表示,UIPopoverController因为无法从内容视图控制器中访问它.

我很惊讶UIViewControllers如何访问模态视图控制器,父视图控制器,导航控制器,拆分视图控制器,标签栏控制器,搜索显示控制器,以及iOS 5,子视图控制器以及呈现并提供控制器...但不是弹出控制器(授予弹出窗口不是UIViewControllers但仍然).

从技术上讲,有一个私有的,未记录的方法来检索UIViewController所在的popoverController ......我不知道为什么它们从未公开它,因为它应该与上述任何控制器完全相同.

虽然即使在私人的,无证件的世界,也没有相当于dismissModalViewcontrollerAnimated:.你仍然必须得到那个引用然后以这种方式解雇它.