调整UITableViewController的大小以便在弹出窗口中显示

时间:2012-12-13 21:28:50

标签: ios uitableview uipopovercontroller uistoryboard

我有UITableViewController我试图在UIPopoverController中显示。无论如何,tableview总是在popover中以完整大小显示。

在我的StoryBoard中,我将UITableViewController的尺寸设置为自由形态。我已在“大小”检查器中明确设置UITableView的高度和宽度。

以下是设置控制器和弹出窗口的方法:

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

2 个答案:

答案 0 :(得分:3)

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

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
      UIStoryboardPopoverSegue *popoverSegue;
      popoverSegue = (UIStoryboardPopoverSegue *)segue;
      UIPopoverController *popOverController = popoverSegue.popoverController;
      [_popOverController setPopoverContentSize:CGSizeMake(width, height)];
}

答案 1 :(得分:0)

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