Как проверить ориентацию интерфейса перед viewDidAppear

У меня есть LoginViewController, который вы можете перемещаться назад и вперед из MainMenuViewController. Я корректирую расположение и размер подпредставлений программно, используя willAnimateRotationToInterfaceOrientation

Это прекрасно работает. У меня проблема в том, что мне нужно проверить правильность ориентации при загрузке ViewController, если он загружен и вы находитесь в альбомной ориентации, будут сделаны те же изменения, которые я внесу в willAnimateRotationToInterfaceOrientation.

Проблема в том, что самая ранняя точка, которую я могу получить self.interfaceOrientation, находится в методе viewDidAppear, и это заставляет пользователя видеть исходные размеры / позиционированные подпредставления в течение доли секунды, прежде чем он перейдет к ландшафтно-соответствующим размерам / позициям. Я попытался в viewDidLoad и viewWillAppear, и ни одна из этих работ не работает, потому что (во что я верю), self.interfaceOrientation все еще НЕДЕЙСТВИТЕЛЕН на данный момент. Как я могу обойти это и получить изменения, которые должны быть сделаны до того, как пользователь просмотрит страницу (viewDidAppear)?

Любая помощь будет принята с благодарностью. Спасибо!

1 ответ

Кажется, вы ищете этот метод:

- (void)viewWillLayoutSubviews 
{

}

https://developer.apple.com/library/ios/documentation/uikit/reference/UIViewController_Class/index.html

"Метод viewWillLayoutSubviews также вызывается после изменения размера представления и позиционирования его родителем".

Другие вопросы по тегам