複数のページがUIScrollView
あり、それぞれに が含まれていますUITableViewController
(リマインダー アプリに似ています)。これらのそれぞれのセルをクリックすると、UITableViewControllers
aDetailViewController
が押されます。
ただし、がポップされると、スムーズにスライドするのではなく、DetailViewController
すぐに の後ろに消えます。スライドUIScrollView
の次のページが見えますが、 が最後のページからプッシュされた場合、 には破棄された と重なる可能性のあるコンテンツがないため、トランジションは正常に見えます。UIScrollView
DetailViewController
UIScrollView
DetailViewController
編集
これは、View Controller階層を作成する方法です(簡略化):
ScheduleViewController.m:
- (void) viewDidLoad {
// ...
for (int i = 0; i < 3; ++i) {
MyTableViewController *myTableViewController = [[MyTableViewController alloc] initWithNibName:@"MyTableView" bundle:nil];
[self.scrollView addSubview:myTableViewController];
[self addChildViewController:myTableViewController];
[myTableViewController didMoveToParentViewController:self];
}
そして、ここ
tableView:didSelectCellAtIndexPath:
にありますMyTableViewController
:
(void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// ...
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];
DetailViewController* detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailView" bundle:nil];
[self.navigationController pushViewController:detailViewController animated:YES];
}
}
ここで何が間違っているのでしょうか?この動作に対する回避策はありますか?