UICollectionView calling scrollViewDidScroll: when popped from the navigation stack
self.automaticallyAdjustsScrollViewInsets = NO; inside your view controller.
I had a problem similar to this, and found that on navigating away from the page, the
contentOffset was changing by 20 every time.
I found that setting this property inside my view controller stopped this changing, and therefor
scrollViewDidScroll was no longer being called. Turns out the view controller automatically adjusts content insets for changes in status bar, nav bar etc.. even when you navigate away.
I think this is a better solution and proper explanation as to why the scrolling method was being called.