изменения ориентации, когда все мои контроллеры вида вращаются? - PullRequest
4 голосов
/ 08 сентября 2011

Если в моем стеке навигации установлено несколько контроллеров UIViewController, как и когда перекладываются невидимые (нижние) контроллеры представления?Все ли они размещаются в то же время, что и контроллер видимого представления, или только после того, как они вставлены в стек отображения?

edit: В настоящее время я управляю изменением размера подпредставлений самостоятельно (скореечем установка автоматического изменения размера = ДА).Я делаю изменение размера в методе willAnimateRotationToInterfaceOrientation, так что все это хорошо анимируется.Я предполагаю, что этот метод не вызывается ни для одного контроллера uiview, который находится не над стеком дисплея.Итак, есть ли встроенный способ узнать, отображается ли текущий контроллер uiview, и если нет, то какой метод мне следует переопределить, чтобы ретранслировать мои подпредставления для контроллеров uiview, которые не находятся наверху стека дисплея?

Спасибо!

Солнечный

1 Ответ

0 голосов
/ 08 октября 2012

Я бы предложил проверить ориентацию в viewWillAppear. Если вы проверите здесь ориентацию, вы можете быть уверены, что вид всегда будет отображаться с правильным макетом для данной ориентации. Вам все еще нужно повернуть его в willAnimateRotationToInterfaceOrientation.

-(void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    if (UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation))
    {
        [self layoutForPortrait];    
    }

    else if (UIDeviceOrientationIsPortrait([UIDevice currentDevice].orientation))
    {
        [self layoutForLandscape];                
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...