viewDidLayoutSubviews no longer called when popping top view with UINavigationController
<p>iOS 10, the gift that keeps on breaking, seems to have changed another behavior. </p>

<p>Assume two UIViewControllers are pushed onto a UINavigationController.</p>

<p>On iOS 8/9, calling <code>navigationController?.popViewController(animated: true)</code> to pop the top UIViewController (say VC2) caused <code>viewDidLayoutSubviews</code> on the bottom view controller (say VC1) to get called.</p>

<p>We relied on this to refresh VC1. Sometimes VC2 adds subviews to VC1 (via the data model), and this needs to get reflected when popping back to VC1.</p>

<p>Accurate frame information is required. We can't use <code>viewWillAppear</code> because <a href="https://stackoverflow.com/questions/32662851/ios-9-frame-no-longer-set-in-viewwillappear-after-uinavigationcontroller-pushvi">frame data is wrong on iOS 9</a>. The problem with <code>viewDidAppear</code> is that there is a momentary glitch between seeing the view initially and the adjustment. </p>

<p>Now VC1's <code>viewDidLayoutSubviews</code> does not get invoked when popping VC2.</p>

<p>1) Is this a bug for <code>viewDidLayoutSubviews</code> to not get invoked?</p>

<p>2) What's the right way to refresh view controllers when popping with UINavigationController?</p>