我有一个 UIPopoverController。我在其中放置了一个带有两个 UITableViewcontroller 的 UINavigationController。
我创建了一个子类 UITableView,我可以设置弹出框的大小tableView.contentSizeForViewInPopover
:
if (self.myPopoverController.isPopoverVisible)
{
[self.myPopoverController dismissPopoverAnimated:YES];
}
else
{
MyRootTableView *rootTableView = [[MyRootTableView alloc]initWithStyle:UITableViewStyleGrouped];
MyRootTableView.contentSizeForViewInPopover = CGSizeMake(POPOVER_SIZE.width, [self createContentHeighForTableViewController:tableView]);
MyRootTableView.boundaryDelegate = self;
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:tableViewController];
navController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
navController.navigationBar.barStyle = UIBarStyleBlack;
self.myPopoverController = [[UIPopoverController alloc] initWithContentViewController:navController];
self.myPopoverController.delegate = self;
[self.myPopoverController presentPopoverFromRect:frame inView:view permittedArrowDirections:arrowDirection animated:YES];
}
在 rootTableViewController 的 didSelectRowAtIndexPath 中:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
DetailedTableViewController *tableViewController = [[DetailedTableViewController alloc] initWithStyle:UITableViewStyleGrouped];
tableViewController.contentSizeForViewInPopover = CGSizeMake(POPOVER_SIZE.width, [self createContentHeighForTableViewController:tableViewController]);
tableViewController.delegate = self.boundaryDelegate;
[self.navigationController pushViewController:tableViewController animated:TRUE];
}
createContentHeightForTableViewController:
计算在表格视图中显示所有单元格所需的高度
所以对于根tableViewController,我设置了内容大小。当我创建详细视图控制器时,我将其设置contentSizeForViewInPopover
为不同的大小。这很好用。我遇到的问题是当我导航回根表视图时,contentSizeForViewInPopover
仍然为详细表视图设置。
当表格视图显示或出现时,如何调整弹出框的大小?