У меня такая ситуация:
UISplitViewController
как основная навигация приложения
- master - детальный дизайн, т.е. VC iPad master соседствует с VC подробно
на iPhone Master с меню представлены с использованием
showDetailViewController()
подробных контроллеров представления.
на всех iPhone и iPad все работает отлично, но на iPhone Plus происходит сбой, когда у меня на экране Detail VC и я пытаюсь повернуть его из портретной в альбомную. Поскольку я бегу прямо из меню к деталям, VC уже в ландшафте, чем у меня есть контроллеры бок о бок.
Код настолько прост и прост, что я не могу найти никаких ошибок. Выдает только ошибку, подобную этой:
EXC_BAD_ACCESS on @UIApplicationMain AppDelegate
0x112a82804 <+115>: callq 0x112a82869 ; _UIApplicationMainPreparations
0x112a82809 <+120>: movq 0xceb190(%rip), %rdi ; UIApp
0x112a82810 <+127>: movq 0xc5f841(%rip), %rsi ; "_run"
0x112a82817 <+134>: callq *0x892c93(%rip) ; (void *)0x000000010906fd80: objc_msgSend
-> 0x112a8281d <+140>: movq 0x892c94(%rip), %rbx ; (void *)0x000000010906d010: objc_release
ОБНОВЛЕНИЕ:
Я сделал простой стартовый проект с упрощенной навигацией. Один единственный вызов showDetailViewController от главного виртуального канала к подробному виртуальному каналу. И даже в этом случае происходит сбой, поэтому он не работает на телефонах iPhone Plus. Похоже, ошибка UISplitViewController. Я думаю, что некоторым решением будет установить на устройствах iPhone Plus принудительное свертывание (не бок о бок) в ландшафтном режиме. Я думаю, что есть возможность установить размер классов (переопределить один по умолчанию) для ландшафта для UISplitView через делегирование. Кто-нибудь знает, как этого добиться?