在哪里设置popover大小?

Nos*_*tap 18 objective-c uitableview ios

我有一个UIViewController被调用的HomeViewController,它有一个包含数据数组的模型. HomeViewController还有一个按钮,按下时会显示UITableViewController该显示的模型数据数组.

我的问题是,设置popover大小的标准/最佳方法是什么?我只希望弹出窗口高到足以显示数据,但不高.什么是常见做法?我假设我需要contentSizeForViewInPopover在某些时候设置,但我不确定在哪里......在viewDidLoadpopover类的方法中?在prepareForSegue方法?

这是我到目前为止的代码:(请注意,这DataPresentingViewController是我的popover视图控制器类`)

//In HomeViewController
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if([segue.destinationViewController isKindOfClass:[DataPresentingViewController class]])
    {
        DataPresentingViewController *dest = (DataPresentingViewController *) segue.destinationViewController;
        dest.mySavedData = self.myModel.mySavedData;
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以contentSizeForViewInPopoverprepareForSegue方法中设置这里; 然而,这似乎是popover类应该处理的事情.

Lui*_*ien 56

截至iOS7 contentSizeForViewInPopover已被弃用.你应该使用UIViewController's preferredContentSize属性.

希望这可以帮助!

  • 此值也可以在IB中设置:**ViewController的属性检查器**`>>`内容大小`>>`**使用的首选显式大小** (4认同)

Aza*_*zat 21

contentSizeForViewInPopoverViewDidLoad方法中设置HomeViewController

  • 我相信调用的替换是setPreferredContentSize: (18认同)
  • -contentSizeForViewInPopover:在iOS 7中不推荐使用.使用-setPopoverContentSize:animated:而不是. (13认同)

Vac*_*cca 6

contentSizeForViewInPopover在iOS 7中不推荐使用UIPopoverController
的属性:popoverContentSize表示由UIPopoverController的contentViewController属性中的视图控制器管理的内容视图的大小.
参考

它的优点是它可以在iOS 3.2及更高版本中使用,因此您不需要每次都检查设备版本,只需将contentSizeForViewInPopover方法替换为您的UIPopOverController对象实例.