我有一个UIScrollView
包含多个页面的页面,每个页面都包含一个UITableViewController
(类似于 Reminders-App)。单击每个单元格中的一个单元格UITableViewControllers
会导致 aDetailViewController
被推送。
但是,当DetailViewController
弹出时,它会立即消失在 后面UIScrollView
,而不是平滑地滑开。我可以看到滑动的下一页UIScrollView
,但是当DetailViewController
从最后一页推送时,过渡看起来很好,因为 上没有UIScrollView
可能与被解雇的内容重叠DetailViewController
。
编辑
这就是我创建视图控制器层次结构的方式(简化):
调度视图控制器.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];
}
}
我在这里做错了什么?这种行为有什么解决方法吗?