использование ориентации устройства для реализации контроллера модального вида - PullRequest
2 голосов
/ 29 января 2011

Пожалуйста, прости мне вопрос noob, это мой первый вопрос, и я честно потратил немало усилий на поиск своего собственного решения.

У меня есть проект с двумя контроллерами представления.основное - только портретное изображение, а второй (суб) модальный контроллер представления должен присутствовать только в ландшафтном режиме.Моя цель состоит в том, чтобы ориентация одного устройства переключала контроллеры (и обеспечивала вызов функции для контроллера модального вида, передавая определенные ивары одновременно с контроллера основного вида), аналогично, я бы хотела переориентировать на портретотклонить модальное представление и вернуться к исходной точке.

Я полагаю, это как-то работает в собственном приложении Apple для калькулятора?Кто-нибудь может дать мне подсказку о самом API-совместимом способе сделать это?Огромное спасибо за ваше время.

Я бы очень хотел избежать нажатия кнопки «назад» или «готово» на модальном виде, а также переключаться назад и вперед с ориентацией устройства, только если это вообще так.возможно

Ответы [ 2 ]

3 голосов
/ 30 января 2011

У Apple есть хорошее объяснение и пример кода именно для того, что вы хотите сделать.См. Создание альтернативного ландшафтного интерфейса в Руководстве по программированию контроллера представления.

1 голос
/ 30 января 2011

Если у вас включено вращение для ваших видов, тогда в -(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration Вы можете проверить ориентацию и действовать соответственно так:

-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{

    if(UIInterfaceOrientationIsLandscape(toInterfaceOrientation))
    {
     //check if modal viewController is already alive 
     //pop the modal if needed
    }
   else
    {
    //destory the modal if its still alive
    }
}
...