iOS 6: portre ve diğerleri döndürmek için izin vermek için bazı görüşler kısıtlarım?
UINavigationController
bir ayrıntıya bir arabirim sunmak için kullanan bir iPhone uygulaması var: İlk görünümü, o zaman başka bir, en fazla dört düzeyden daha derin. İlk üç görüş dikey konuma kısıtlı istiyorum ve sadece son görünüm yatay olarak döndürmek için izin verilmelidir. Üçüncü dördüncü görüntülemek dönen ve dördüncü görünüm yatay iken herşey portre geri döndürmek istiyorum.
İOS 5'te ben sadece benim görüşüme denetleyicileri her shouldAutorotateToInterfaceOrientation:
EVET izin verilen yönleri dönmek için tanımlanmış. Her şey eğer cihaz görünümü denetleyicisi #3 #4 döndürme, yatay tutuluyor olsa bile dikey dönüş de dahil olmak üzere yukarıda açıklandığı gibi çalıştı.
İOS 6 tüm denetleyicileri yatay döndürmek için bir anlamı olmadığını bu kırılma görüntüleyin. 6 notlarında ki iOS
Daha fazla sorumluluk uygulaması ve uygulama temsilciye hareket ediyor. Şimdi, iOS kaplar (
UINavigationController
) çocuklarını autorotate olup olmadığını belirlemek için başvurun. [...] Sistem ister en üstteki tam ekran görünüm denetleyicisi (genellikle kök görünümü denetleyicisi) desteklenen arabirim yönelimleri her cihaz döner ya da ne zaman bir görünüm denetleyicisi sunulan tam ekran kalıcı sunum tarzı. Ayrıca, desteklenen yönelimleri eğer bu döner kumanda EVETshouldAutorotate
onun yönteminden görünüm sadece alınır. [...] Sistemi olup olmadığını belirler bir yönlendirme tarafından desteklenmektedir kesişen tarafından döndürülen değeri appsupportedInterfaceOrientationsForWindow:
yöntem tarafından döndürülen değerisupportedInterfaceOrientations
yöntemin en üstteki tam ekran denetleyicisi.
UINavigationController
, MainNavigationController
bir boolean benim malım verdi landscapeOK
alt ve bu supportedInterfaceOrientations
izin verilen yönelimleri döndürmek için kullanılır. Benim görüşüm her zaman denetleyicilerinin' bu gibi bir çizgi var viewWillAppear:
yöntemleri
[(MainNavigationController*)[self navigationController] setLandscapeOK:YES];
MainNavigationController
istediğiniz davranışım söylemek.
Burada soru gelir:Ben şimdi portre modunda dördüncü görüşüm gidin ve telefonu ters çevirin eğer yatay döner. Şimdi sadece portre çalışması gerekiyordu, benim üçüncü görünüme dönmek için Geri düğmesine basın. Ama geri döndürmek değil. Nasıl böyle bir şey yapabilirim?
Denedim
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait]
üçüncü görünüm benim denetleyicisi viewWillAppear
yöntem, ama hiçbir işe yaramıyor. Bu çağrı için yanlış bir yöntem ya da aramak için yanlış yer belki ya da tamamen farklı bir şekilde her şeyi uygulamak gerekir mi?
CEVAP
Aynı sorun bende de vardı ve benim için çalışan bir çözüm bulundu.
Bu işi çözebilmek içindeğilyeterli sizin UİNavigationController - (NSUInteger)supportedInterfaceOrientations
uygulamak için.
Ayrıca denetleyicisi denetleyicisi haşhaş sonra sadece portre-ilk olan #3, #4 Bu yöntemi uygulamak gerekir.
Yani, benim UİNavigationController aşağıdaki kodu var:
- (BOOL)shouldAutorotate
{
return YES;
}
- (NSUInteger)supportedInterfaceOrientations
{
if (self.isLandscapeOK) {
// for iPhone, you could also return UIInterfaceOrientationMaskAllButUpsideDown
return UIInterfaceOrientationMaskAll;
}
return UIInterfaceOrientationMaskPortrait;
}
Görünüm #3, aşağıdakileri ekleyin denetleyicisi:
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
Görünümü denetleyicileri için bir şey #1, #2 ve #4 eklemenize gerek yok. Bu benim için, sana yardımcı olacaktır umarım çalışır.
Nasıl sadece sayısal (0-9) HTML ınputb...
Neden diğerleri üzerinde bazı platform...
Nasıl Express/Node.js içinde bir İSTAS...
Ne kadar BOŞ izin vermek için bir MySQ...
En iyi yolu bir PHP uygulama için ekle...