для справки, я использую Xcode 6.1 и настраиваю IOS 7.1. Похоже, есть сообщения с похожими проблемами, но предложения не сработали для меня. У меня есть приложение, которое я разработал для работы только в ландшафтном режиме. Поэтому я установил проект для поддержки ориентации только по ландшафтному праву и ландшафтному левому краю. Но когда в моем коде я хочу представить новую ViewController, приложение выдает исключение и сбои в отчете «presentViewController» в коде ниже:Пейзаж Приложение IOS создает исключение при представлении модального viewController
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
PhotoViewController *photoVC = [storyboard
instantiateViewControllerWithIdentifier:@"PhotoViewController"];
// Configure the new view controller here.
//photoVC.view.frame = CGRectMake(0,0,self.view.bounds.size.width, self.view.bounds.size.height);
photoVC.view.frame = CGRectMake(0,0,568, 320);
[self presentViewController:photoVC animated:YES completion:nil];
Кстати для целей тестирования я зашито 568 и 320 для ширины и высоты.
сообщение об ошибке говорит:
неперехваченное исключение «NSInternalInconsistencyException», причина: «Autolayout> не поддерживает пересечения границы вращения преобразуется с краем макетом> ограничениями, такими как справа, слева, сверху, снизу. Оскорбительный вид: UITransitionView: 0x1701fa700; frame = (-2,84217e-14,0; 320 568); transform = [0, -1, 1, 0, 0, 0];
Одна вещь, которую я не понимаю, почему «кадр» в сообщении об ошибке показывает 320, как ширина и 568, как высота, когда «presentViewController» проходит в ViewController с рамой, установленной в ландшафтном режиме (ширина = 568, высота = 320). Сообщение об ошибке также жалуется на «пересечение границ поворота границ», какие подсказки, которые поворачивает представление viewController?
любая идея, что не так?
благодаря
Действительно ли ваш 'PhotoViewController' настроен только для ориентации на ландшафт, или вы строго полагаетесь на установку фрейма, чтобы сделать это для вас (подсказка: это не так)? –
В соответствии с Руководством по программированию ViewController, когда вы указываете на уровне приложения, что ваше приложение поддерживает определенные ориентации, этот выбор применяется ко всем viewControllers в приложении.В нем говорится: «Если вы ограничиваете поддерживаемые ориентации приложения, то эти ограничения применяются глобально ко всем контроллерам представлений приложения», но я также включил «supportedInterfaceOrientations» в PhotoViewController, чтобы указать, что он поддерживает пейзаж справа и слева, но ошибка все тот же – malena
Вы пробовали явно не устанавливать фрейм и позволить системе сделать это за вас? –