Только исторический ответ. Эффектно устарел:
Обратите внимание, что этот ответ сейчас сильно устарел.
Это сообщение только историческое любопытство .
Захватывающие новости! Как обнаружил Эндрю ниже, эта проблема была исправлена Apple в 4.0+.
Похоже, что больше нет необходимости устанавливать размер представления для каждого вида, и конкретная серьезная проблема ландшафта, «работающего только в первый раз», решена.
По состоянию на апрель 2011 года невозможно протестировать или даже построить что-либо ниже 4.0, поэтому вопрос является чисто историческим любопытством. Невероятно, сколько неприятностей это доставляло разработчикам так долго!
Вот оригинальное обсуждение и решение. Сейчас это совершенно неактуально, поскольку эти системы даже не работают.
ЧРЕЗВЫЧАЙНО СЛОЖНО сделать эту работу полностью - в игре как минимум три проблемы / ошибки.
попробуйте это .. конструктор интерфейсов ландшафтный дизайн
Обратите внимание, в частности, на то, что там, где написано ", и вам нужно правильно использовать вездеAutorotateToInterfaceOrientation везде" это означает везде, все ваши полноэкранные просмотры.
Надеюсь, это поможет в этом кошмаре!
Важное напоминание о ДОПОЛНИТЕЛЬНОЙ известной проблеме, имеющейся здесь: если вы пытаетесь переключиться между БОЛЬШЕ, ЧЕМ ОДИН * просмотр (весь ландшафт), ЭТО ПРОСТО НЕ РАБОТАЕТ . Важно помнить об этом, или вы потратите дни на решение этой проблемы. Это буквально НЕ ВОЗМОЖНО. Это самая большая открытая, известная ошибка на платформе iOS. Буквально нет способа заставить аппарат сделать второй вид, который вы загружаете, быть альбомным. Раздражающий, но простой обходной путь, и то, что вы должны сделать, - это иметь тривиальный мастер UIViewController, который ничего не делает, кроме как сидит там и позволяет переключаться между вашими представлениями.
Другими словами, в iOS из-за большой известной ошибки:
[window addSubview:happyThing.view];
[window makeKeyAndVisible];
Вы можете сделать это только один раз . Позже, если вы попытаетесь удалить happyThing.view и вместо этого вставить туда newThing.view, ЭТО НЕ РАБОТАЕТ - И ЭТО ЭТО. Машина никогда не повернет вид на пейзаж. Нет хитрости, даже Apple не может заставить ее работать. Обходное решение, которое вы должны принять, - это иметь общий UIViewController, который просто сидит там и просто содержит ваши различные представления (happyThing, newThing и т. Д.). Надеюсь, это поможет!