ipad SplitView Ориентация в DetailView - PullRequest
1 голос
/ 13 мая 2010

Я использую этот код в 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);
>         
>     } }

Ответы [ 2 ]

1 голос
/ 13 мая 2010

Чтобы убрать предупреждение, переместите определение -adjustViewsForOrientation: до -willRotateToInterfaceOrientation:….

Метод -willRotateToInterfaceOrientation:… будет вызываться только при повороте интерфейса. Когда приложение было впервые запущено, интерфейс не вращается (он соответствует начальной ориентации), поэтому этот вызов не генерируется. Вы должны вызвать его вручную, например, в -viewDidLoad:

-(void)viewDidLoad {
   [self adjustViewsForOrientation:self.interfaceOrientation];
}
1 голос
/ 13 мая 2010

Вам необходимо объявить свой метод в RootViewController.h, например, так:

- (void) adjustViewsForOrientation:(UIInterfaceOrientation)orientation;

В противном случае вы получите предупреждение. Чтобы убедиться, что ваше представление вращается при запуске приложения, добавьте вызов AdjustViewsForOrientation в своем классе AppDelegate в методе applicationDidFinishLaunching.

...