2

基于 Apple 的 示例代码,我的应用程序在弹出窗口中显示了一个视图控制器,该视图控制器由一个条形按钮触发:

- (IBAction)configChartTapped:(id)sender {

GrowthChartConfigOneViewController *panelViewController = [[GrowthChartConfigOneViewController alloc]init];

UIPopoverController *popover = [[UIPopoverController alloc]initWithContentViewController:panelViewController];
popover.delegate = self;

// Store the popover in a custom property for later use.
self.popover = popover;

[self.popover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 
}

但是,我没有找到设置弹出框大小的方法。

问题:我应该在哪里以及如何设置弹出框及其视图控制器的大小?我可以直接在 XCode 中设置大小以使视图在情节提要中正确调整大小吗?

4

3 回答 3

5

您也可以在 popover 类本身中设置它。这样,如果您允许从多个位置调用弹出框,您只需设置一次大小。

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
        self.view.backgroundColor = [UIColor redColor];
        self.contentSizeForViewInPopover = CGSizeMake(320.0, 216.0);
    }
    return self;
}
于 2012-11-21T17:52:06.777 回答
3

只需给出 popovercontentsize 并确保该视图应符合如下定义的弹出框大小:

    popover = [[UIPopoverController alloc] initWithContentViewController: panelViewController];
    popover.popoverContentSize = CGSizeMake(550, 700);
于 2012-10-12T18:14:18.593 回答
2

上面的答案很好,但由于我的需求略有不同,我只想为情节提要更新它。如果您使用这样的情节提要标识符进行实例化:

CBItemViewController *addNewPayee = [self.storyboard instantiateViewControllerWithIdentifier:@"cbItemPopover"];

然后您可以在弹出框的代码中设置自定义大小,如下所示:

- (id)initWithCoder:(NSCoder *)decoder {
    if(self = [super initWithCoder:decoder]) {
        self.preferredContentSize = CGSizeMake(630, 340);
    }
    return self;

}
于 2014-10-30T19:12:53.363 回答