Tylko odpowiedź historyczna. Spektakularnie nieaktualne.
Należy pamiętać, że ta odpowiedź jest teraz bardzo nieaktualna /
Ta odpowiedź to tylko ciekawostka historyczna .
Ekscytujące wiadomości! Jak odkrył poniżej Andrew, problem ten został rozwiązany przez firmę Apple w wersji 4.0+.
Wydawałoby się, że nie ma już potrzeby wymuszania rozmiaru widoku na każdym widoku, a konkretny poważny problem krajobrazu „działającego tylko za pierwszym razem” został rozwiązany.
Od kwietnia 2011 roku nie można przetestować ani nawet zbudować niczego poniżej 4.0, więc pytanie jest czysto historyczną ciekawostką. To niesamowite, ile kłopotów sprawiało to programistom przez tak długi czas!
Oto oryginalna dyskusja i rozwiązanie. Teraz jest to zupełnie nieistotne, ponieważ te systemy nie działają nawet.
Wykonanie tej funkcji w pełni jest BARDZO TRUDNE - występują co najmniej trzy problemy / błędy w grze.
spróbuj tego .. projektowanie krajobrazu kreatora interfejsów
Zwróć uwagę w szczególności, że tam, gdzie jest napisane „i musisz wszędzie prawidłowo używać shouldAutorotateToInterfaceOrientation” , oznacza to wszędzie, wszystkie Twoje widoki pełnoekranowe.
Mam nadzieję, że pomoże to w tym koszmarze!
Ważne przypomnienie o DODATKOWYM dobrze znanym problemie: jeśli próbujesz przełączać się między WIĘCEJ NIŻ JEDNYM widokiem (cały krajobraz), PO PROSTU NIE DZIAŁA . Należy o tym pamiętać, bo inaczej stracisz dni na problem. To dosłownie NIE MOŻLIWE. Jest to największy otwarty, znany błąd na platformie iOS. Dosłownie nie ma sposobu, aby sprzęt wykonał drugi ładowany widok, czyli krajobraz. Irytującym, ale prostym obejściem jest to, co musisz zrobić, to mieć trywialnego mistrza UIViewController, który nic nie robi, ale siedzi tam i pozwala przełączać się między widokami.
Innymi słowy, w iOS z powodu poważnego znanego błędu:
[window addSubview:happyThing.view];
[window makeKeyAndVisible];
Możesz to zrobić tylko raz . Później, jeśli spróbujesz usunąć happyThing.view i zamiast tego wstawisz tam newThing.view, TO NIE DZIAŁA - I TO TAKIE. Maszyna nigdy nie obróci widoku do poziomu. Nie ma żadnej sztuczki, nawet Apple nie może tego zrobić. Obejście, które musisz zastosować, polega na posiadaniu ogólnego kontrolera UIViewController, który po prostu siedzi tam i po prostu przechowuje różne widoki (happyThing, newThing itp.). Mam nadzieję, że to pomoże!