【发布时间】:2011-09-18 08:06:56
【问题描述】:
我的表格视图有问题。当关闭显示在其顶部的模态视图控制器时,它总是滚动到顶部。我曾尝试使用 KVO 观察对 contentOffset 的更改,但是让我的观点混乱的那个在它后面。
从UITableViewController,当用户在模态对话框中完成他的任务时,self.tableView.contentOffset 是,我调用:
[self dismissModalViewControllerAnimated:YES]
随后,当调用viewWillAppear:(BOOL)animated 时,self.tableView.contentOffset 已经设置为 0,0。
这应该发生吗?我可以通过在显示模态视图之前记住滚动位置并在关闭模态视图后将其恢复回 viewWillAppear 来解决此问题。但这似乎是错误的。我错过了什么吗?
我发现Dismiss modal view changes underlying UIScrollView中描述的类似问题。
【问题讨论】:
-
你能检查一下
viewDidLoad:在关闭模态视图后是否被调用? (我注意到这可能在内存警告期间发生,即使视图被推送,某些组件也会被卸载)。 -
babbidi 有一个很好的观点,如果出现内存警告,您的视图可能会在模态视图位于顶部时被卸载。如果您在 viewDidLoad 方法中初始化表视图,并且在模态视图期间出现内存警告,那么当您关闭模态视图时,表视图可能会重新初始化。将 NSLogs 放在 viewDidUnload 和 viewDidLoad 中。
-
我已经在监视
viewDidUnload- 不,视图没有卸载。
标签: ios uitableview