嵌入容器视图中的Tableview会在方向更改时重置数据

时间:2015-11-16 22:47:21

标签: ios objective-c iphone uitableview uicontainerview

我在 containerview 中嵌入了 Tableview 。表格视图在加载时有一个部分,用户可以将单元格标记为已完成,这会将它们移动到已完成的部分。我的问题是在我将一个单元格移动到已完成的部分之后如果我改变了方向,则单元格返回其原始位置并且完成的部分为空。它会更改方向并调整单元格内所有标签和图像的大小。如何在两个部分中使用数据的tableview更改方向? 这就是我加载嵌入式tableviewcontroller的方法,

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.

if([segue.identifier isEqualToString:@"embedPickListSegue"]) {

    TasksTableViewController *viewController = segue.destinationViewController;
//this array is used to create the tableview
viewController.tasks = self.tasks;
}

然后在TasksTableViewController中,当用户选择完成时,

[self.tasks removeObject:task];
NSIndexPath *removeIndexPath = [NSIndexPath indexPathForRow:indexPath.row inSection:0];

[self.complete insertObject:task atIndex:0];
NSIndexPath *insertIndexPath = [NSIndexPath indexPathForRow:0 inSection:1];

[self.tableView beginUpdates];
[self.tableView deleteRowsAtIndexPaths:@[removeIndexPath] withRowAnimation:UITableViewRowAnimationFade];
[self.tableView insertRowsAtIndexPaths:@[insertIndexPath] withRowAnimation:UITableViewRowAnimationFade];
[self.tableView endUpdates];

1 个答案:

答案 0 :(得分:0)

我想出了这个问题。我使用全局数组来完成可用和已完成的任务来加载表,并解决了这个问题。我使用的两个阵列都在重新定位方向上。