Почему [UIViewController presentModalViewController: animated:] переводит модальное представление слева? - PullRequest
4 голосов
/ 05 марта 2011

Я создаю приложение, которое поддерживает только альбомную ориентацию на iPad под iOS 4.3, хотя ошибка присутствовала и в iOS 4.2.

В некоторых местах приложения я показываю UIViewControllerкак модальные представления.Все они показаны с использованием этого шаблона:

viewController.modalPresentationStyle = UIModalPresentationFormSheet;
viewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentModalViewController:viewController animated:YES];

В большинстве мест они работают как положено - лист модальной формы скользит от нижней части экрана вверх.

Однако вВ двух случаях лист модальной формы скользит в нижнем левом углу экрана.Лист формы скользит почти полностью вправо, а нижняя часть листа формы не видна.Если вы сфокусируете текстовое поле и покажете экранную клавиатуру, лист формы переместится в верхний центр экрана, где вы ожидаете.

Я не думаю, что имитированные метрики XIB влияют на ихповедение, но я установил ориентацию для всех них (как вызывающего UIViewController self, так и контроллера модального представления viewController) в Пейзаж.

Любые идеи, почему эти два листа модальной формы ведут себяв отличие от других?

Ответы [ 2 ]

0 голосов
/ 21 июля 2012

Убедитесь, что у вас есть встроенный в NavigationController viewController, для которого navController должен иметь значение AutoAutorate, также установленное в ландшафт

0 голосов
/ 21 июля 2012

Я думаю, что здесь вы не вернете альбомную ориентацию в функцию shouldAutorotate, поэтому используйте этот код, если вы хотите просматривать в горизонтальном / левом / правом виде:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationLandscapeRight||interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
    // return YES;
}

Попробуйте, это может помочь вам.

...