NSKeyedUnarchiver + UITableViewController无法正常运行

时间:2010-11-07 16:19:29

标签: iphone uitableview nskeyedarchiver

我试图使用NSKeyedArchiver来存储我的UITabBarController的状态。选项卡内部是UINavigationControllers,其中包含UITableViewControllers。

归档似乎没有任何问题。

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

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

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

我做了一些我不应该尝试的事情,或者我错过了一些我需要添加的东西以使事情正常工作?

更新:在我的控制器中设置self.tableView = [decoder decodeObjectForKey:@"tableView"]似乎解决了滚动/选择问题,但是生成的tableView始终是UITableViewStylePlain,但仍然看起来像是属性错误已经设定。

1 个答案:

答案 0 :(得分:0)

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