Изменение вида с другой ориентацией - PullRequest
2 голосов
/ 11 ноября 2010

Вот моя проблема: у моего приложения есть панель инструментов, где вы можете переключаться между представлениями.Основной или, по крайней мере, тот, который запускается, находится в ландшафтном режиме, тогда, если вы переходите в любой другой вид, в портретном режиме.Проблема возникает, когда вы пытаетесь вернуться к первому (альбомному), вид отображается в портретной ориентации, поэтому все виды отображаются неправильно.(Это более или менее ясно? Извините, если кажется грязным).Некоторый код, который у меня есть здесь:

V1Controller:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}

V2Controller:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

-(IBAction)goToV1 {
 V1Controller *v1 = [[V1Controller alloc] init];
 [self.view.superview addSubview:v1.view];
}

Может быть что-то сделать с объектом v1 перед добавлением представления?Я не знаю, нужна ваша помощь.

Проблема решена В переходе представления мне не хватило одного предложения, удалите текущий вид из суперпредставления.Кроме того, что @Brad говорил.Спасибо.

-(IBAction)goToV1 {
     V1Controller *v1 = [[V1Controller alloc] init];
     [self.view.superview addSubview:v1.view];
     [self.view removeFromSuperview];
    }

1 Ответ

4 голосов
/ 11 ноября 2010

Когда вы говорите:

return (interfaceOrientation == UIInterfaceOrientationPortrait);

Вы разрешаете поворачивать его только на портрет.

Если вы хотите повернуть в портрет , а затем обратно в альбомную, просто верните «ДА».

Та же логика применяется, когда вы говорите

return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);

Вы фактически говорите: «Пусть это будет повернуто в одну сторону - но никогда не вернется в другую сторону»

...