我的表格视图有问题。当解除其上的模态视图控制器时,它总是滚动到顶部。我试着用KVO观察contentOffset
的变化,但是我认为弄乱了我的观点的那个变种落后了。dismissModalViewControllerAnimated重置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中。 – MattyG
我已经在监视'viewDidUnload' - 不,视图没有被卸载。 – Palimondo