2010-08-29 13 views
6

Cihazın oryantasyonu değiştirildiğinde yeni bir xib yüklemek nasıl olur? yani cihaz yatay yönelime döndüğünde ve tersine dikey olarak yatay yönlendirilmiş bir xib yerleştirin. ve oryantasyon değişikliğini otomatik olarak tespit edip oradan nasıl ayarlayacağım?Aygıt yönlendirmesi xcode olarak değiştirildiğinde, bir xib'yi nasıl yüklerim?

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged) name:UIDeviceOrientationDidChangeNotification object:nil]; 

ve bu ekleyin:

cevap

7

görünüşte yapmam gereken tek şey EVET bir görünüm tabanlı uygulama dönüş shouldAutoRotateToInterfaceOrientaion oluşturmak ve bireysel xib dosyaları ile iki UIViewController alt sınıflarının oluşturulması, daha sonra uygulama görünümü denetleyicisine bu ekleyin hem de uygulama görünüşüdür kontrolöre yöntemi:

-(void)orientationChanged { 
    UIDeviceOrientation orientation = [UIDevice currentDevice].orientation; 
    if (orientation == UIDeviceOrientationPortrait || orientation == UIDeviceOrientationPortraitUpsideDown) { 
     [[NSBundle mainBundle] loadNibNamed:@"Portrait" owner:self options:nil]; 
    } 
    else { 
     [[NSBundle mainBundle] loadNibNamed:@"Landscape" owner:self options:nil]; 
    } 

} 

ve şu bu cihaz, doğru yönde XIB otomatik yükler döndürüldüğünde.

düzenleme: Ayrıca iki viewcontrollers programsal olarak eklemeniz gerekir (@property ve @synthesize onları da), ve appviewcontroller.xib içinde iki viewcontrollers her biri oluşturduğunuz her xib viewcontroller alt sınıfına karşılık gelen sınıf adı ile. daha sonra bir görünüm ekleyin, dosyanın sahibine bağlayın ve IB'deki çıkışları ib'de oluşturduğunuz görüntüleme denetleyicilerine bağlayın ve bu da tüm iPhone için harika olan

+0

olmalıdır. iPad'in ek adımlar atması gerekiyordu: #define DegreesToRadians (x) ((x) * M_PI/180.0); (self.view.transform = CGAffineTransformMakeRotation (DegreesToRadians (180)) En azından benim durumumda. – TrekOnTV2017

+0

+1 Benim için çalıştı .. Teşekkürler .. :) – HDdeveloper

İlgili konular