Question: In my `viewController.view`, I have some work done in `viewWillLayoutSubviews` that organizes which subviews are visible, which to bring to the front, which to hide, etc, if the orientation changes.

But I have buttons on my view that somehow cause `viewWillLayoutSubviews` to get called every time they are pressed. Why would this be? According to the Apple docs, `viewWillLayoutSubviews` is only called if your view's bounds change.

The result is that my views are getting re-arranged just from pressing a button, but I'm not rotating the device at all nor am I manipulating view.bounds or view.frame in any way.

Answer: 
You better do one thing andrews take a bool and set it TRUE on button press and check it on layoutSubviews and operate whether it is true or false. You get it what i am trying to do.
Its weird , I wrote a demo just 2 methods , one for button's action and one is `- (void)viewWillLayoutSubviews`, when I pressed the button, `- (void)viewWillLayoutSubviews` is not called.Maybe some mistake in your code?