У меня очень простой UIViewController, и я пытаюсь выяснить, как использовать willRotateToInterfaceOrientation.мой UIViewController имеет очень простой метод viewDidLoad:
-(void)viewDidLoad {
[super viewDidLoad];
theBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 48.0f)];
theBar.tintColor = [UIColor orangeColor];
UINavigationItem *item = [[UINavigationItem alloc] initWithTitle:@"The Title"];
item.hidesBackButton = YES;
[theBar pushNavigationItem:item animated:YES];
[item release];
[self.view addSubview:theBar];
}
Так что в основном у меня просто UINavigationBar вверху моего контроллера.Вот и все.Я реализовал несколько методов поворота, основываясь на том, что нашел в Интернете:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES;
}
-(void)willRotateToInterfaceOrientation: (UIInterfaceOrientation)orientation duration:(NSTimeInterval)duration {
if ((orientation == UIInterfaceOrientationLandscapeLeft) || (orientation == UIInterfaceOrientationLandscapeRight)) {
theBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 640, 48)];
}
}
Итак, я запускаю приложение в портретном режиме, а затем поворачиваю в альбомном режиме.И в основном, theBar
все еще остается нормального размера и не изменяется.Я уверен, что это глупый вопрос, но как правильно использовать возможность вращения?Я хочу сделать так, чтобы он также работал, если приложение запускается в ландшафтном режиме.Как лучше всего инициализировать мои компоненты при первом запуске UIViewController, помня о том, что мне нужна поддержка обеих ориентаций, а также помня о том, что я хочу иметь возможность изменять размер всего, основываясь на изменениях ориентации на протяжении всей продолжительностииз жизни UIViewController?Спасибо!