1

我刚刚意识到,使用带有 UITableViewController 的 Storyboards 和 2 个静态单元格执行模态 segue 以显示 2 个不同的 UIViewControllers 实际上是每次创建这些视图控制器的新实例,每次调用 initWithCoder: 方法(然后当然是 viewDidLoad)。我一直认为使用了相同的实例,并且每个视图控制器类只调用了一次 initWithCoder:。

有人可以确认这种行为是正确的吗?我没有使用任何花哨的东西,甚至没有使用prepareForSegue:

有没有办法避免这种情况?

4

1 回答 1

2

在当前版本的 iOS 中,这种行为是“设计使然”的(我在 WWDC '13 上与 2 位 Apple 工程师确认了这一点),但它可能会在未来的更新中改变。在使用情节提要时,我知道没有办法避免它。如果您为每个控制器返回一个 xib,您可以自己管理缓存实例。

于 2013-09-04T16:01:42.990 回答