Jak wymusić orientację pionową w iOS 7
, jeśli moja aplikacja jest początkowo obsługiwana dla obu orientacji?Jak wymusić orientację pionową?
Odpowiedz
UIViewController *c = [[UIViewController alloc]init];
[self presentViewController:c animated:NO completion:nil];
[self dismissViewControllerAnimated:NO completion:nil];
Niech ten kod nie jest zgodny ze standardem Apple, nie jestem pewien ... Ale to dobry hack. –
Kiedy używamy tego kodu, nasza aplikacja nie zostanie zatwierdzona przez Apple do produkcji. –
Czy możesz wyjaśnić, dlaczego to działa, proszę? Ponadto metody te zostały wycofane w systemie iOS 6. Możliwe, że Apple zdecyduje się je usunąć w systemie iOS 8. Nie jest to pierwsza metoda, która została wycofana przez firmę Apple i usunięta wkrótce po niej. – rtiago42
Zastosowanie następujące podejście: w aplikacji delegata .h
@interface PlayWithWSWithLibAppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate> {
BOOL flagOrientationAll;
}
@property (assign) BOOL flagOrientationAll;
Dodaj następujący sposób w aplikacji pliku delegat .m
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{
//NSLog(@"PlayWithWSWithLibAppDelegate -- supportedInterfaceOrientationsForWindow");
if(flagOrientationAll == YES){
return UIInterfaceOrientationMaskPortrait;
} else {
return UIInterfaceOrientationMaskAll;
}
}
Wdrożenie następujący sposób w widoku, który cię chcesz obracać zarówno w orientacji pionowej, jak i poziomej zarówno dla urządzenia iPhone'a, jak i dla urządzenia iPhone'a:
-(void)viewWillAppear:(BOOL)animated
{
self.tabBarController.delegate = self;
PlayWithWSWithLibAppDelegate *delegate = (PlayWithWSWithLibAppDelegate *) [[UIApplication sharedApplication] delegate];
delegate.flagOrientationAll = YES;
}
}
-(void)viewWillDisappear:(BOOL)animated
{
//NSLog(@"viewWillDisappear -- Start");
PlayWithWSWithLibAppDelegate *delegate = (PlayWithWSWithLibAppDelegate *)[[UIApplication sharedApplication] delegate];
delegate.flagOrientationAll = NO;
}
Oto mój wątek co jakiś podobny do Twojego problemu: iOS 7 Interface Orientation
dla całej aplikacji, otwórz plik projektu, należy przejść do zakładki Ogólne, zmień ustawienia:
Or bezpośrednio na plik Info.plist:
Jeśli chcesz tylko ją specyficzny kontroler widoku zastępują supportedInterfaceOrientations
:
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
Możesz przeczytać więcej o tej drugiej metody na oficjalnej UIViewController documentation. Być może znajdziesz bardziej odpowiedni sposób na swój konkretny problem.
Prosto i dobrze, ale dbaj o - (BOOL) powinienAutorować metodę. Nie można go zastąpić lub zwraca wartość TAK, w przeciwnym razie nie będzie działać. – Moose
#import <objc/message.h>
objc_msgSend([UIDevice currentDevice], @selector(setOrientation:), UIInterfaceOrientationLandscapeRight);//here you may change your desired Orientation
- 1. Jak wymusić listę jako pionową przy użyciu html css
- 2. Jak wymusić lub wyłączyć orientację interfejsu dla niektórych, ale nie wszystkich kontrolerów UIViewController?
- 3. Jak wymusić layoutSubviews z UIView.
- 4. Jak utworzyć pionową aranżację?
- 5. Odzyskaj orientację obrazu w PHP
- 6. Jak wyłączyć orientację poziomą?
- 7. Jak określić orientację absolutną?
- 8. Jak zunifikować normalną orientację?
- 9. Jak ustawić orientację działania w systemie Android na podstawie urządzenia?
- 10. Jak uzyskać aktualną orientację widoku iPhone'a lub ostatnią orientację urządzenia?
- 11. Sterowanie pionową zakładką C#
- 12. Jak wymusić orientację poziomą dla aplikacji mobilnych budowanych z cordova-cli?
- 13. Utwórz pionową karuzelę obrazów
- 14. Jak zmienić orientację kontroli UniformGrid?
- 15. Jak zmienić orientację wideo AVPlayera?
- 16. iOS: Jak zmienić orientację UICollectionViewCell?
- 17. jak ustawić pionową pozycję tekstu CATextLayer?
- 18. Jak utworzyć pionową karuzelę w systemie Android?
- 19. Jak narysować pionową linię w gnuplot?
- 20. Jak zmienić postać tworzącą pionową granicę Emacsa?
- 21. Pobierz orientację telefonu, ale ustaw orientację ekranu na portret
- 22. Wykryj orientację ekranu iPhone'a
- 23. Jak wymusić sprawdzanie NSToolBar?
- 24. Jak wymusić usunięcie pliku?
- 25. Jak wymusić instalację pakietu?
- 26. Jak wymusić przerysowanie listview?
- 27. Jak zablokować orientację w czasie wykonywania
- 28. Jak ustawić domyślną orientację w iOS Simulator
- 29. Jak wykrywać orientację urządzenia za pomocą JavaScript?
- 30. Jak ustawić orientację poziomą za pomocą HTML2PDF
Nie jasne czy możesz wyjaśnić więcej. Czy potrzebujesz tylko trybu portretowego w całej aplikacji – morroko
możliwy duplikat [Wymuś orientację pionową podczas przesuwania z kontrolera widoku krajobrazu] (http://stackoverflow.com/questions/14633213/force-portret-orientation-while-pushing-from-landscape -view-controller) –