Я использую этот код в DetailView.m splitview приложения. Теперь изменения ориентации происходят только, когда устройство повернуто. Обнаружение не происходит, когда приложение запускается. Я также получаю это предупреждение
предупреждение: 'RootViewController' не может ответить на '-adjustViewsForOrientation:'
Какое изменение делают я должен заставить приложение скорректировать код ориентации, когда приложение запускается.
> - (void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
> duration:(NSTimeInterval)duration {
> [self adjustViewsForOrientation:toInterfaceOrientation];
> }
>
> - (void) adjustViewsForOrientation:(UIInterfaceOrientation)orientation
> {
> if (orientation == UIInterfaceOrientationLandscapeLeft ||
> orientation ==
> UIInterfaceOrientationLandscapeRight)
> {
> detailDescriptionLabel.center = CGPointMake(235.0f, 42.0f);
> bigthumbImageView.center = CGPointMake(355.0f, 70.0f);
>
> }
> else if (orientation == UIInterfaceOrientationPortrait ||
> orientation ==
> UIInterfaceOrientationPortraitUpsideDown)
> {
> detailDescriptionLabel.center = CGPointMake(160.0f, 52.0f);
> bigthumbImageView.center = CGPointMake(275.0f, 80.0f);
>
> } }
Чтобы удалить предупреждение, переместите определение -adjustViewsForOrientation:
перед -willRotateToInterfaceOrientation:…
.
Метод -willRotateToInterfaceOrientation:…
будет вызываться только при ротации интерфейса. При первом запуске приложения интерфейс не вращается (он следует исходной ориентации), поэтому этот вызов не создается. Вы должны вызвать его вручную, например в -viewDidLoad
:
-(void)viewDidLoad {
[self adjustViewsForOrientation:self.interfaceOrientation];
}
Вам необходимо объявить свой метод в RootViewController.h, например:
- (void) adjustViewsForOrientation:(UIInterfaceOrientation)orientation;
В противном случае вы получите предупреждение. Чтобы убедиться, что ваше представление вращается при запуске приложения, добавьте вызов AdjustViewsForOrientation в свой класс AppDelegate в методе applicationDidFinishLaunching.