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

  • AverageBroTV

    AverageBroTV

    20 Mart 2013
  • stokelycalm

    stokelycalm

    28 Aralık 2010
  • TSE

    TSE

    12 Kasım 2012