проблема ориентации ipad с моделью - PullRequest
0 голосов
/ 25 ноября 2011

У меня есть кнопка на главном виде, когда я нажимаю на кнопку основного вида. Вид модели открыт. Mv1 ширина и высота просмотра модели 730 и 620. В портретном режиме вид модели Mv1 показывает центр в основном виде, но в альбомном режиме Mv1. На модельном экране центр отображается горизонтально, но на главном экране центр не отображается вертикально.

код основного нажатия кнопки кодирования: -

Mv1 *Mv1obj = [[Mv1 alloc]initWithNibName:@"Mv1" bundle:nil];
UINavigationController*nav[[UINavigationControlleralloc]initWithRootViewController:Mv1obj];
nav.modalPresentationStyle=UIModalPresentationFormSheet;
nav.modalTransitionStyle=UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:nav animated:YES];
nav.view.superview.frame = CGRectMake(0, 0,730,620);
nav.view.superview.center = self.view.center;

если знаете, пожалуйста, повторите, спасибо заранее.

1 Ответ

0 голосов
/ 30 декабря 2011

Проблема здесь в том, что вам нужно учитывать ориентацию при настройке центра, поэтому замените строку:

nav.view.superview.center = self.view.center;

на что-то вроде

UIDeviceOrientation orientation = ([[UIDevice currentDevice] orientation]);
const CGPoint centerPortait = self.view.center;
const CGPoint centerLandscape = CGPointMake(centerPortait.y, centerPortait.x);
const CGPoint center = (orientation == UIDeviceOrientationPortrait) ? centerPortait : centerLandscape;
nav.view.superview.center = center;

это будет правильно центрировать модальное представление.

...