İOS 8'den önce, aşağıdaki yönlendirmeyi desteklenenInterfaceOrientations ile birlikte kullandık ve uygulama yönlendirmesini belirli bir yöne zorlamak için mustAutoRotate delege yöntemlerini kullandık. Aşağıdaki kod snippet'ini programlı olarak uygulamayı istenen yöne döndürmek için kullandım. İlk olarak, durum çubuğu yönünü değiştiriyorum. Ve sonra sadece bir modsal görünüm sunmak ve hemen kapatmak, görünümü istenen yöne 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];
Ancak bu iOS 8'de başarısız oluyor. Ayrıca, yığın taşmasında bazı insanların, iOS 8'den itibaren bu yaklaşımdan her zaman kaçınmamız gerektiğini önerdiği bazı cevaplar gördüm.
Daha açık olmak gerekirse, uygulamam evrensel bir uygulama türüdür. Toplamda üç kontrolör vardır.
İlk Görünüm denetleyicisi - iPad'deki tüm yönleri ve iPhone'daki yalnızca dikey (ana sayfa düğmesi) desteklemelidir.
İkinci Görünüm kontrolörü - Her koşulda yalnızca manzarayı desteklemelidir
Üçüncü Görünüm denetleyicisi - Her koşulda yalnızca manzarayı desteklemelidir
Sayfada gezinmek için gezinti denetleyicisini kullanıyoruz. İlk görünüm denetleyicisinden, bir düğme tıklatma eyleminde, ikincisini yığın üzerinde itiyoruz. Bu nedenle, ikinci görünüm denetleyicisi geldiğinde, aygıt yönüne bakılmaksızın, uygulama yalnızca yatay olarak kilitlenmelidir.
Aşağıda benim shouldAutorotate
ve supportedInterfaceOrientations
ikinci ve üçüncü görünüm denetleyicisindeki yöntemler verilmiştir.
-(NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskLandscapeRight;
}
-(BOOL)shouldAutorotate {
return NO;
}
Bu veya iOS 8 için belirli bir yönde bir görünüm denetleyicisini kilitlemenin daha iyi bir yolu var mı? Lütfen yardım edin!