В контексте обнаружения и реагирования на изменение ориентации я видел два подхода: реализовать willRotateToInterfaceOrientation или попросить представление начать испускать соответствующие уведомления (deviceOrientationDidChange).
willRotateToInterfaceOrientation
deviceOrientationDidChange
Когда этопоследний предназначен для использования?Каким было бы преимущество?
Метод willRotateToInterfaceOrientation:duration: является частью UIViewController .Если вы унаследовали UIViewController, вам нужно только переопределить этот метод, чтобы получать информацию об изменениях ориентации.
willRotateToInterfaceOrientation:duration:
Однако, если вы находитесь в каком-то другом классе и хотите получать информацию об изменениях ориентации, вам необходимозарегистрироваться для UIDeviceOrientationDidChangeNotification .
методы, начинающиеся с «воли», запускаются до выполнения действия, а методы, начинающиеся с «делали» после. Это подход всей структуры! Когда использовать один из двух, зависит от ваших потребностей