0

我正在尝试使用 NSKeyedArchiver 来存储我的 UITabBarController 的状态。选项卡内是包含 UITableViewControllers 的 UINavigationControllers。

归档似乎没有任何问题。

取消归档时,我的 UITableViewControllers 遇到了奇怪的问题。initWithCoder: 被正确调用,我在里面做的第一件事就是调用 [super initWithCoder:]

tableView 似乎已正确重新创建,并且已设置委托和 dataSource 属性。如果我的 initWithCoder: 除了调用 super 并返回 self 什么都不做,那么我的表格视图最终为空并且我的委托方法不会被调用。如果我连接 self.tableView 的委托和 dataSource 属性,我可以正确看到我的内容,但是在选择时不会调用 didSelectRowAtIndexPath,并且在一个实例中,我无法滚动直到重新加载 tableView。

如果在 initWithCoder: 我创建一个新的 UITableView 一切正常,但我不相信我应该这样做。

我是在做我不应该尝试做的事情,还是我遗漏了一些明显的东西,我需要添加以使事情正常工作?

更新:在我的控制器内设置self.tableView = [decoder decodeObjectForKey:@"tableView"]似乎解决了滚动/选择问题,但生成的 tableView 始终是 UITableViewStylePlain 并且似乎仍然是错误的事情,因为已经设置了属性。

4

1 回答 1

0

你的设计模式肯定是不寻常的。通常,您不会尝试归档表视图,只归档用于创建它的数据。然后,当您再次需要表格视图时,您将从这些数据中重新创建它,使用与最初创建它时相同的代码。

于 2010-11-08T18:57:49.303 回答