1

我有一个UITableViewController我试图在UIPopoverController. 不管做什么,表格视图总是在弹出框内以全尺寸显示。

在我的 StoryBoard 中,我将UITableViewController's Size 设置为 Freeform。我已经UITableView在 Size 检查器中明确设置了 ' 的高度和宽度。

这是我设置控制器和弹出框的方法:

UIStoryboard* sb = [UIStoryboard storyboardWithName:@"MainStoryboard-iPad" bundle:nil];

self.settingsController = [sb instantiateViewControllerWithIdentifier:@"SettingsViewControllerID"];

self.settingsPopover = [[UIPopoverController alloc] initWithContentViewController:_settingsController];

我还尝试过明确设置控制器的弹出框大小:

self.settingsController.contentSizeForViewInPopover = CGSizeMake(400.0, 400.0);

当我运行应用程序并激活弹出框时 - 它几乎与主屏幕一样高。

我在这里遗漏了一些明显的东西吗?

提前致谢, CS

4

2 回答 2

3

您可以使用以下代码更改 tableView 大小。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
      UIStoryboardPopoverSegue *popoverSegue;
      popoverSegue = (UIStoryboardPopoverSegue *)segue;
      UIPopoverController *popOverController = popoverSegue.popoverController;
      [_popOverController setPopoverContentSize:CGSizeMake(width, height)];
}
于 2013-02-06T08:51:02.940 回答
0

UITableViewController 总是希望成为窗口的完整大小,或者弹出框(这是一种特殊的窗口)。如果您想要一个较小的表格视图,请使用 UIViewController 作为弹出框的内容控制器。然后你应该能够在 IB 中调整它的大小。

于 2012-12-13T22:23:29.293 回答