Historisk svaret bare. Spektakulært utdatert:
Vær oppmerksom på at dette svaret er nå enormt utdatert.
Dette innlegget er bare en historisk kuriositet .
Spennende nyheter! Som oppdaget av Andrew nedenfor, har dette problemet blitt løst av Apple i 4.0+.
Det ville synes det ikke lenger er nødvendig å tvinge størrelsen på visningen på hver visning, og den spesifikke alvorlig problem i landskapet "bare arbeider første gang" er løst.
Per april 2011, er det ikke mulig å teste eller bygge noe under 4,0, så spørsmålet er rent et historisk kuriositet. Det er utrolig hvor mye problemer det forårsaket utviklere så lenge!
Her er den opprinnelige diskusjon og løsning. Dette er helt irrelevant nå, da disse systemene er ikke engang betjenes.
Det er svært vanskelig å gjøre dette arbeidet fullt - det er minst tre problemer / bugs på spill.
Prøv dette .. Interface Builder landskap design
Legg spesielt merke til at der det står "og du må bruke shouldAutorotateToInterfaceOrientation ordentlig overalt" betyr overalt, alle fullscreen visninger.
Håper det hjelper i dette marerittet!
En viktig påminnelse om EKSTRA velkjent problem for hånden her: hvis du prøver å bytte mellom MER ENN EN view (alle liggende), IT slett ikke fungerer . Det er viktig å huske dette, eller du vil kaste bort dager på problemet. Det er bokstavelig talt ikke mulig. Det er den største åpne, kjent bug på iOS-plattformen. Det er bokstavelig talt ingen måte å gjøre maskinvaren gjør andre visningen du laste, være landskapet. Den irriterende, men enkel løsning, og hva du må gjøre, er å ha en triviell mester UIViewController som ikke gjør annet enn å sitte der og la deg bytte mellom dine synspunkter.
Med andre ord, i iOS på grunn av en stor know bug:
[window addSubview:happyThing.view];
[window makeKeyAndVisible];
Du kan gjøre det bare en gang . Senere, hvis du prøver å fjerne happyThing.view, og i stedet satt der newThing.view, IT fungerer ikke - og det er det. Maskinen vil aldri rotere visningen til landskapet. Det er ingen triks fikse, selv Apple ikke kan gjøre det arbeidet. Løsningen må du adoptere er å ha en samlet UIViewController som bare sitter der og bare holder ulike synspunkter (happyThing, newThing, etc). Håper det hjelper!