我使用以下代码创建一个popover。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"popover"]) {
self.popoverTvc = [segue destinationViewController];
self.popoverTvc.popoverPresentationController.delegate = self;
}
}
当用户点击导航栏中的按钮时,将触发上述popover样式,并且生成的视图控制器已获得tableview。
问题是,
在纵向模式下,表格视图的大小取决于可用内容的大小。但是当我将视图从横向更改为纵向时,tableview包含可见的空单元格,因此这些空单元格阻挡了ui。为什么会这样?我希望tableview即使在横向模式下也不会阻挡整个屏幕。
我在视图中使用以下代码执行load方法来调整tableview的大小
if (self.tableView && self.presentingViewController) {
self.preferredContentSize = [self.tableView sizeThatFits:self.presentingViewController.view.bounds.size];
}
答案 0 :(得分:1)
而不是size of table view is as per the size of the contents available.
以编程方式给出弹出窗口的大小。
请跟随:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
NSString *identifier = segue.identifier;
if ([identifier isEqualToString:@"popover"]) {
UIViewController *dvc = segue.destinationViewController;
dvc.preferredContentSize = CGSizeMake(180,128);
UIPopoverPresentationController *ppc = dvc.popoverPresentationController;
if (ppc) {
ppc.delegate = self;
}
}
并在上面的步骤中添加以下内容:
- (UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller {
return UIModalPresentationNone;
}