Пользовательский переход UIViewController с вращением - PullRequest
1 голос
/ 07 мая 2011

У меня есть пара подклассов UIViewController.Один, который отображает сетку, а другой, по сути, является «подробным видом» для плитки в сетке.Пользователь нажимает на плитку, и подробный вид расширяется от сетки, чтобы заполнить экран.

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

Поскольку это пользовательская анимация, я не могt использовать стандартные методы контроллера pop и push view.Есть ли метод, который мне нужно вызвать, чтобы этот контроллер представления отвечал за обработку поворота, пока он не будет отклонен?

Спасибо

Ответы [ 2 ]

0 голосов
/ 08 мая 2011

Вы можете настроить пользовательский делегат в контроллере вида сетки и зарегистрировать контроллер детального вида в качестве этого делегата после его настройки. В контроллере вида сетки вы затем реализуете willRotateToInterfaceOrientation:duration: и didRotateFromInterfaceOrientation:, которые сначала вызывают соответствующие методы в делегате (контроллере подробного представления), а затем в super.

0 голосов
/ 08 мая 2011

Если я правильно понимаю, вы поворачиваете свой контроллер вида сетки, и он отвечает, но контроллер представления «детальный вид» не изменяется правильно?

Если это так, есть два возможных решения:могу думать (и в настоящее время использую себя).Одним из решений было бы зарегистрировать «подробный вид» для уведомления.Всякий раз, когда контроллер вида сетки поворачивается, отправьте уведомление, и «подробный вид» должен ответить так, как вы хотите.

Другое решение - это просто проверка, когда загружен «подробный вид».

if (self.view.bounds.size.height < self.view.bounds.size.width) {
    // apply the code you wish to size it for landscape mode;
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...