Я написал приложение, в котором есть UIViewController, который отображает другой UIViewController в портретном режиме и другой UIViewController в альбомной ориентации.
Когда я пойду в пейзаж, я буду рисовать / размещать вещи, поэтому мне нужно получить координаты ландшафта. Ниже приведен код, который запускает новое представление при вращении iPhone. Код ниже показывает, как загружается это представление.
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)x
duration:(NSTimeInterval)duration
{
if (UIInterfaceOrientationIsPortrait(x))
{
NSLog(@"Going Portrait");
} else if (UIInterfaceOrientationIsLandscape(x))
{
NSLog(@"Going Landscape");
if (activeView != [graphViewController view])
{
[containerView addSubview:[graphViewController view]];
}
}
}
Моя проблема в том, что когда
-(void)loadView {
CGRect screenBounds = [[UIScreen mainScreen] bounds];
NSLog(@"GraphViewController: Screenbounds %@", NSStringFromCGRect(screenBounds));
}
в GraphViewController возвращает, он создает: GraphViewController: Screenbounds {{0, 0}, {320, 480}}
, который не совпадает с ландшафтом, и поэтому мой рисунок неверен.
Как мне сделать так, чтобы GraphViewController имел правильные координаты, когда он вызывает [UIScreen mainScreen] bounds]; ?
Большое спасибо
Mike