UIPopoverController があります。2 つの UITableViewcontrollers を含む 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
まだ詳細テーブル ビューに設定されていることです。
テーブルビューが表示されているとき、または表示されているときにポップオーバーのサイズを変更するにはどうすればよいですか?