presentViewController: сбой на iOS <6 (автоматическая разметка)

Это странная авария, которую я получаю. Сбой происходит, когда я нажимаю кнопку, которая переходит к определенному ViewController. Строка, на которой происходит сбой:

DestinationInformationViewController *info = [[DestinationInformationViewController alloc] init];
[info setModalTransitionStyle: UIModalTransitionStyleCrossDissolve];
[self presentViewController:info animated:YES completion: nil]; // CRASHES HERE
[info release];

След катастрофы:

*** Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named NSLayoutConstraint' *** First throw call stack: (0x3758288f 0x35287259 0x37582789 0x375827ab 0x3153d54d 0x3153d6bb 0x3153d423 0x314ce001 0x3143c3c7 0x31319c59 0x3128fc17 0x3129a267 0x3129a1d5 0x3133959b 0x31338367 0x84091 0x374dc3fd 0x31271e07 0x31271dc3 0x31271da1 0x31271b11 0x31272449 0x3127092b 0x31270319 0x31256695 0x31255f3b 0x33c9822b 0x37556523 0x375564c5 0x37555313 0x374d84a5 0x374d836d 0x33c97439 0x31284cd5 0x82bb3 0x71200) terminate called throwing an exception(gdb) Could not instantiate class named NSLayoutConstraint

ПРИМЕЧАНИЕ: это происходит сбой на моем iPhone 4 iOS 5.1, но не на моем iPhone 4S iOS 6 Beta 2

 Sinuhe Huidobro21 сент. 2012 г., 21:55
У меня была такая же проблема после обновления до Xcode 4.5 и приложения на iphone 5.1. Посмотрите на эту ссылку:artstudioh.com/calculator/images/error_xcode.png
 MCKapur22 сент. 2012 г., 02:29
Да, я думаю, что мы установили это :)

Ответы на вопрос(4)

Другой возможной причиной сбоя с presentViewController является то, что что-то в наконечнике подключено к переменной, которой больше нет - переменная, имя которой было изменено, или она была удалена.

Решение Вопроса

Я считаю, что это проблема с новым конструктором интерфейсов XCode. Вам не приходилось создавать свой .xib, используя конструктор интерфейса Xcode 4.5? Я столкнулся с этой же проблемой только сейчас, и я думаю, что это проблема. Мое приложение работает на iOS 6, но не старше.

А тебе надоmake sure you turn off Use Auto Layout for your xibs.

Это может быть сделано:

Open your xib. Go to the File Inspector tab. Find the Interface Builder Document section on the right toolbar. Uncheck the Use Auto Layout option.
 MCKapur26 июн. 2012 г., 02:15
Спасибо, это работает!!!
 26 июн. 2012 г., 02:04
В главном представлении вашей xib, раздел Document Builder интерфейса на правой панели инструментов.
 26 июн. 2012 г., 01:59
Да, вам нужно убедиться, что вы отключили & quot; использовать автоматическую разметку & quot; для ваших перьев.
 09 окт. 2012 г., 13:11
Немного беспокоит то, что происходит с контролем качества в Apple в эти дни.
 20 сент. 2012 г., 03:46
Почти выбросил в окно макинтош с Xcode, но это, конечно, спасло мое здравомыслие. Престижность!

ScreenShot

У меня была та же проблема, когда я загружал новое обновление XCode и IOS6 SDK. Вот как я это решил:

Выберите файл Интерфейсного разработчика (файл XIB или раскадровка), где ваша ошибка происходит. В редакторе помощника справа в XCode, выберите первую вкладку слева, и есть флажок для опции «Использовать Autolayout» как на скриншоте выше. Снимите флажок.

 25 окт. 2012 г., 18:40
Спасибо. Работает отлично.
 09 окт. 2012 г., 10:53
Как решить то же самое, если мы не используем XIB?

если мы не используем XIB? Я столкнулся именно с этой проблемой. Я создал контроллер с XIB, а затем я решил удалить файл XIB. Крушение не прошло. Проблема заключалась в том, что мне нужно было реализовать

- (void) loadView

в моем классе контроллера. Как только я реализовал этот метод, проблема была решена.

Ваш ответ на вопрос