проблема с ориентацией iPad с представлением модели

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

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

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;

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


person Gauging    schedule 25.11.2011    source источник


Ответы (1)


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

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;

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

person jstevenco    schedule 29.12.2011