我正在尝试使用 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 并且似乎仍然是错误的事情,因为已经设置了属性。