Bu hata mesajının görünebileceği başka bir durum var. Sorunu bulana kadar saatlerce arıyordum. Bu ileti dizisi birkaç kez okuduktan sonra çok yardımcı oldu.
Ana görünüm denetleyiciniz yatay yöne döndürülmüşse ve dikey yönde görüntülenmesi gereken özel bir alt görünüm denetleyicisini çalıştırırsanız, bu hata mesajı kodunuz şöyle göründüğünde ortaya çıkabilir:
- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationPortrait;
}
Buradaki tuzak, xcode'un intellisense önerdiği "UIInterfaceOrientationPortrait" idi ve ben umursamadım. İlk bakışta bu doğru görünüyordu.
Doğru maske adlandırılır
UIInterfaceOrientationMaskPortrait
Küçük ek "Maske" nin farkında olun , aksi takdirde alt görünümünüz bir istisna ve yukarıda belirtilen hata mesajıyla sonuçlanacaktır.
Yeni numaralandırmalar biraz kaydırılır. Eski numaralandırmalar geçersiz değerler döndürür!
( UIApplication.h içinde yeni bildirimi görebilirsiniz: UIInterfaceOrientationMaskPortrait = (1 << UIInterfaceOrientationPortrait) )
Çözüm şudur:
- (BOOL)shouldAutorotate {
return YES;
}
- (NSUInteger)supportedInterfaceOrientations {
// ATTENTION! Only return orientation MASK values
// return UIInterfaceOrientationPortrait;
return UIInterfaceOrientationMaskPortrait;
}
Hızlı kullanımda
override func shouldAutorotate() -> Bool {
return true
}
override func supportedInterfaceOrientations() -> Int {
return Int(UIInterfaceOrientationMask.Portrait.rawValue)
}