Nasıl denetleyicisi oryantasyon görünümünde zorlamak için iOS 8? | Netgez.com
SORU
14 EKİM 2014, Salı


Nasıl denetleyicisi oryantasyon görünümünde zorlamak için iOS 8?

Önce 8 ile birlikte aşağıdaki kodu kullandık iOSsupportedİnterfaceOrientationsveshouldAutoRotatetemsilci belirli bir yönelim için app yönlendirme zorlama yöntemleri. Program aracılığıyla istediğiniz yönlendirmeye uygulaması döndürmek için aşağıdaki kod parçası kullanılır. İlk olarak, durum çubuğu yönünü değiştiriyorum. Ve sonra sadece zararlı ve hemen kalıcı bir görünüm kayıtsız istenen yönlendirmeye görünümü döndürür.

[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:YES];
UIViewController *c = [[UIViewController alloc]init];
[self presentViewController:vc animated:NO completion:nil];
[self dismissViewControllerAnimated:NO completion:nil];

Ama bu iOS 8'de başarısız oluyor. Ayrıca, insanlar her zaman iOS 8'lerden itibaren bu yaklaşım kaçınmalıyız önerdi burada yığın taşması bazı cevaplar gördüm.

Daha spesifik olmak gerekirse, benim uygulama evrensel bir türüdür. Toplam üç denetleyicileri var.

  1. İlk Görünüm denetleyicisi- İPad tüm yönleri ve yalnızca dikey (ev düğmesini basılı) iPhone destek vermeli.

  2. İkinci Görünüm denetleyicisi- Sadece manzara değil her koşulda destek olmalıdır

  3. Üçüncü Görünüm denetleyicisi- Sadece manzara değil her koşulda destek olmalıdır

Sayfa gezinme için kumanda navigasyon kullanıyoruz. Düğmesine basarak bir eylem ilk görünümü denetleyicisi, yığın ikinci bastırıyorlar. İkinci görünüm denetleyicisi, cihaz yönelimi ne olursa olsun geldiğinde, app manzara değil sadece kilitlemek gerekir.

Aşağıda shouldAutorotate supportedInterfaceOrientations yöntemleri ikinci ve üçüncü görünümünde benim denetleyicisi.

-(NSUInteger)supportedInterfaceOrientations{
    return UIInterfaceOrientationMaskLandscapeRight;
}

-(BOOL)shouldAutorotate {
    return NO;
}

Bunun için herhangi bir çözüm veya iOS 8 için belirli bir yönde görünümü denetleyicisi kilitleme herhangi iyi bir yol yoktur. Yardım lütfen!!

CEVAP
14 EKİM 2014, Salı


7 & 8 iOS:

Objective-C:

NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationLandscapeLeft];
[[UIDevice currentDevice] setValue:value forKey:@"orientation"];

Swift:

let value = UIInterfaceOrientation.LandscapeLeft.rawValue
UIDevice.currentDevice().setValue(value, forKey: "orientation")

Sadece sunulan görünüm denetleyicisi - viewDidAppear: Ara.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • 24 Канал

    24 КанаÐ

    5 ÅžUBAT 2006
  • inovationgmbh

    inovationgmb

    28 EYLÃœL 2010
  • TitaniumBackup

    TitaniumBack

    10 EYLÃœL 2011