基于Apple的sample code,我的应用程序在弹出框中呈现一个视图控制器,它由一个条形按钮触发:
- (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中设置大小,以便在故事板中正确调整视图大小吗?
答案 0 :(得分:5)
您也可以在popover类中设置它。这样,如果允许从多个位置调用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;
}
答案 1 :(得分:3)
只需给出popovercontentsize并确保该视图符合下面定义的popover大小:
popover = [[UIPopoverController alloc] initWithContentViewController: panelViewController];
popover.popoverContentSize = CGSizeMake(550, 700);
答案 2 :(得分:2)
上面的答案很好,但由于我的需求略有不同,我只想更新故事板。如果您使用这样的故事板标识符进行实例化:
CBItemViewController *addNewPayee = [self.storyboard instantiateViewControllerWithIdentifier:@"cbItemPopover"];
然后您可以在popover的代码中设置自定义大小,如下所示:
- (id)initWithCoder:(NSCoder *)decoder {
if(self = [super initWithCoder:decoder]) {
self.preferredContentSize = CGSizeMake(630, 340);
}
return self;
}