我有UISplitViewController,它在主视图中以及详细视图中显示UITableView。
当用户选择主视图表中的某个项目时,我会在详细信息视图中重新加载该表格,并且我希望在页面卷曲的情况下对其进行动画处理。
这是我正在使用的代码:
UITableView *newTableView = [[UITableView alloc] initWithFrame:self.tableView.frame style:UITableViewStylePlain];
[newTableView reloadData]; // ineffective attempt to load data prior to transition
[UIView transitionFromView:self.tableView
toView:newTableView
duration:0.8
options:UIViewAnimationOptionTransitionCurlUp
completion:^(BOOL finished)
{
[newTableView reloadData]; // needed
[self setTableView:newTableView];
[newTableView release];
}];
转换发生,但'显示'UITableView只是一个普通的无人居住的UITableView,除非我强制重新加载完成块中的数据。然后,如果我这样做,我会转换到一个空表,然后重新加载以显示预期的数据 - 不是很好。
如何才能使显示的表格显示所需的数据?感谢。
答案 0 :(得分:0)
我想这应该可行。
UITableView *newTableView = [[UITableView alloc] initWithFrame:self.tableView.frame style:UITableViewStylePlain];
[self setTableView:newTableView]; //until the table is set, there is no use reloading it
[newTableView reloadData]; // it should reload now and then animate
[UIView transitionFromView:self.tableView
toView:newTableView
duration:0.8
options:UIViewAnimationOptionTransitionCurlUp
completion:^(BOOL finished)
{
[newTableView reloadData]; // needed
[self setTableView:newTableView];
[newTableView release];
}];
你在[self setTableView:newTableView];
之上遗失reloadData
。希望能帮助到你。快乐的编码:)