I have my answer. I just downloaded simulators for iOS 7.1 for use in the latest Xcode. I found that the method viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator NOT called when running on iOS 7.1. However, I also found that the problem that I described with double rotation twice does NOT happen with the willRotateToInterfaceOrientation method in iOS7, but again it works in iOS 8. This is a clear bug in Apple.
It looks like I will need to determine the version of the OS on which the client is running, and if it's iOS 8 or higher, I will not run any code in the willRotateToInterfaceOrientation method. However, I can leave the viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator method there for iOS 8 devices, since this method will simply be ignored by iOS 7.
I do not know if this is just a problem for splitviewcontrollers or for all viewing methods using rotation between iOS 7 and 8. If your application does not cancel this method, than you will never know. If this is what you encounter with what I did above. Not good.
Here is the code I use to check the version:
-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation { if (NSFoundationVersionNumber == NSFoundationVersionNumber_iOS_7_1)
I left the method -(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator , as this will just be ignored by iOS 7 devices, but iOS 8.x and supposedly higher will be called.
source share