2012-01-20 13 views
7

Pracuję nad aplikacją dla systemu iOS 5, które muszą działać w trybie poziomym. Mój problem polega na tym, że początkowo nie mogę tego zmienić.Wymusza uruchomienie aplikacji iOS w trybie poziomym

Próbowałem dodawanie „początkowej orientacji interfejsu” set „Pejzaż (prawy przycisk home)” i dodając następującą metodę do mojego kontrolera celu:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
// Return YES for supported orientations 
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight); 
} 

mogę owinąć głowę wokół jak go ma działać. (Znalazłem kod here)

Zastanawiam się również, jak korzystać z "Obsługiwanego orientacji urządzenia" dostępnego w konfiguracji projektu Xcode 4.2, nie wydaje się nic.

Rozglądałem się po witrynie i nie mogłem znaleźć przykładu, który rozwiązałby mój problem.

Dziękuję.

+0

http://stackoverflow.com/a/17628668/468724 –

Odpowiedz

16

W Info.plist złożyć aplikacji, dodać klucz UIInterfaceOrientation i ustawić jej wartość na tryb poziomym. W przypadku orientacji krajobrazu można ustawić wartość tego klucza na UIInterfaceOrientationLandscapeLeft lub UIInterfaceOrientationLandscapeRight.

Połóż swoje widoki w trybie poziomym i upewnij się, że ich opcje automatycznego przypisywania są ustawione prawidłowo.

Zastępuje metodę kontrolera widoku shouldAutorotateToInterfaceOrientation: i zwraca wartość TAK tylko dla żądanej orientacji poziomej i NR dla orientacji pionowej.

+0

Dziękuję. Zrobiłem to, jak opisałeś. Mam więcej niż jedno wyskoki i odkryłem, że musiałem nadpisać tę metodę na wszystkich kontrolerach, zanim zacząłem działać. – bvd

+0

Jeśli w pliku info.plist umieszczasz UIInterfaceOrientationLandscapeRight nad innymi krajobrazami, możesz uruchomić aplikację na krajobrazie –

0

Myślę, że jeśli masz obsługiwane orientacje interfejsu w plist projektu, to będzie działać. po prostu dodaj nową linię o nazwie "Obsługiwane orientacje interfejsu" i uczyń ją typem tablicy i dodaj 2 elementy dla każdego z tych widoków. miałaś przetestowane to tylko szybkie odgadnąć

+0

Próbowałem że z brak szczęścia. – bvd

1

Po kliknięciu nazwy projektu w XCode i wybraniu celu w obszarze TARGETS, w zakładce Podsumowanie znajduje się wizualna reprezentacja obsługiwanych ustawień orientacji urządzenia. W ten sposób udało mi się to zrobić.

-2

Wypróbuj to, co pomoże ci, napisz ten kod w swoim widokudidload.

[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight]; 
+0

UIDevice setOrientation jest tylko do odczytu i nie można go ustawić. –

+0

Właściwość tylko do odczytu nie ma ustawnika. – SyntheticMeshwork

10

użyć następujących w appDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

    [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight]; 

również ustawić żądaną orientacje w

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
// Return YES for supported orientations 
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight); 
} 

//Here are some iOS6 apis, used to handle orientations. 
- (BOOL)shouldAutorotate NS_AVAILABLE_IOS(6_0) 
- (NSUInteger)supportedInterfaceOrientations - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation 
+0

shouldAutorotateToInterfaceOrientation: nie nazywa się mi pomóc jej docenić –

+0

@JigPatel korzystać z niektórych z tych nowych metod w iOS6 '- (BOOL) shouldAutorotate NS_AVAILABLE_IOS (6_0) - (NSUInteger) supportedInterfaceOrientations - (UIInterfaceOrientation) preferredInterfaceOrientationForPresentation' – vishy

Powiązane problemy