Uygulamamın kök görüntüleme denetleyicisi herhangi bir yönlendirmeyi destekler, ancak kullanıcı yalnızca yatay yönlendirmeyi destekleyen başka bir görünüm denetleyicisine gidebilir. Temel sorun şu ki, aygıtın gerçek fiziksel yönelimi ne olursa olsun, kullanıcı kök görüntüleme denetleyicisine geri döndüğünde, gezinti çubuğunun yatay mod için uygun bir yüksekliğe sahip olması gerekir. Üste | Gezinme çubuğunun 32 (yatay yükseklik) yerine 44 (dikey yükseklik) olarak görünmesini nasıl sağladığımı öğrenmek istiyorum.iPhone gezinme çubuğu yüksekliği dikey yönde kısa kalır
Gezinme çubuğu uygun yüksekliğe ayarlanmamış olsa da, kök görünüm denetleyicisinin UITableView'ı doğru bir şekilde ofset (ekranın üstünden 44 piksel). İkinci görüş kontrolörün -viewWillAppear İçinde
: Ben rotasyonel standart dönüşümü gerçekleştirin:if (deviceOrientation == UIDeviceOrientationPortrait)
{
UIScreen *screen = [UIScreen mainScreen];
CGFloat screenWidth = screen.bounds.size.width;
CGFloat screenHeight = screen.bounds.size.height;
UIView *navView = [[self navigationController] view];
navView.bounds = CGRectMake(0, 0, screenHeight, screenWidth);
navView.transform = CGAffineTransformIdentity;
navView.transform = CGAffineTransformMakeRotation(degreesToRadians(90));
navView.center = CGPointMake(screenWidth/2.0, screenHeight/2.0);
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight];
}
bu ikincil görünüm denetleyicisi alt görünüm denetleyicileri için navigasyon izin verdiğinden (yanı sıra geri kök görünümü denetleyicisi haşhaş), Ben -viewWillDisappear için aşağıdaki ekledik:
if (deviceOrientation == UIDeviceOrientationPortrait)
{
UIScreen *screen = [UIScreen mainScreen];
CGFloat screenWidth = screen.bounds.size.width;
CGFloat screenHeight = screen.bounds.size.height;
UIView *navView = [[self navigationController] view];
navView.bounds = CGRectMake(0, 0, screenWidth, screenHeight);
navView.transform = CGAffineTransformIdentity;
navView.center = CGPointMake(screenWidth/2.0, screenHeight/2.0);
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait];
}
Teşekkür gezinti çubuğu yüksekliğinin yeniden hesaplamaya konusunda herhangi bir tavsiye için. Orada daha iyi bir yol, ama bu çalıştı eğer
Mükemmel teşekkürler, ios6'da tekrar çalışabilmemin tek yolu – AlexWien
ios10 nedir? Bu sorunu yaşadım ve çözüm çalışmıyor. – Slavcho
@Slavcho. Afedersiniz. Benim bir cevabım yok. Bir süredir iOS üzerinde çalışmıyorum. – westsider