2010-08-26 2 views
0

Я использовал несколько uiviewcontrollers в моем приложении, основанном на разрешении, на основе ipad. Есть веб-службы. Для некоторых определенных веб-сервисов (например, Выход) мне нужно удалить раскол и вставить новый экран входа i.e. но в большинстве случаев shouldAutoRotate метод входа в систему не вызывает вызов в результате немого приложения, которое не вращается. Что может быть причиной этого? Что мне делать?shouldAutoRotate метод не работает должным образом ..?

ответ

0

Убедитесь, что вы не извлечь UIView из вашего UIViewController, который shouldAutorotateToInterfaceOrientation: функция возвращает YES, а затем добавить UIView в другое использование UIView addSubView. Я столкнулся с этим раньше.

+0

Фактически я прошел через следующую ссылку, я обнаружил, что я делаю ошибку, добавив 2 вида в окно. i.e loginview и splitview. теперь я представил loginview как модальное представление, которое решило мою проблему. Теперь мое приложение хорошо вращается. Thakns. – Mahesh

0

Убедитесь, что все ваши контроллеры просмотров возвращают YES для shouldAutorotateToInterfaceOrientation: для вашей iPad-сборки - по крайней мере, те, которые видны в то время.

См: iPad orientation change issue

+0

ОК спасибо, это помогает мне, я попробую. На самом деле в shouldAutorotateToInterfaceOrientation: метод, который я вычислил размер viewcontrollers, но придает плохие размеры, то есть он предвидит прежний размер ориентации вместо текущего. Поэтому я сделал некоторую ручную настройку, основанную на размере. Может ли это повлиять? – Mahesh

1

для сохранения моего устаревшего кода Я добавил это.

- (BOOL)shouldAutorotate{ 
    UIDeviceOrientation orientation = [UIDevice currentDevice].orientation; 
    if (orientation == UIDeviceOrientationUnknown) return YES; 
    BOOL result = [self shouldAutorotateToInterfaceOrientation:orientation]; 
    return result; 
} 

тогда исходный код возвращает действительную информацию о авторотации.

Смежные вопросы