When using Storyboards, why does viewWillAppear not draw my subviews and viewDidLayoutSubviews does and more importantly to access the frame.size value from subviews of subviews I have to call [self.scroller layoutIfNeeded] inside of viewDidLayoutSubviews? I’m interested in understanding the page life cycle of a view controller and what changed in going from xibs to storyboards.

Storyboards are actually implemented as collections of xib files, with additional information about transitions (segues) between them. So the view controller life cycle should not be radically different if we’re just talking about a single view controller.
It’s very difficult to answer your specific question without understanding how your view controller and its view hierarchy are set up. It sounds like you have a view inside of a scroll view and you want to know when you can access its
frameproperty.UIKit follows these steps (roughly):
viewDidLoadis called after this step.viewWillAppear:to indicate that it is about to display the view.viewDidAppear:is called.It’s possible you are seeing something strange if a view has
autoresizesSubviewsset toNO; that may be why you have to calllayoutIfNeededonself.scroller. Note that the documentation forlayoutIfNeededsays:So it could potentially be triggering the layout of other unrelated views.