2009-09-17 4 views

ответ

2

Если вы хотите отобразить новый и другой взгляд, самое простое и чистое решение выдвинуть новое представление контроллер (presentModalViewController), который поддерживает только ландшафтный режим (в atAutorotateToInterfaceOrientation :).

+1

- shouldAutorotateToInterfaceOrientation: устарел в iOS 6.0. См. [This] (http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/DeprecationAppendix/AppendixADeprecatedAPI.html#//apple_ref/occ/instm/UIViewController/shouldAutorotateToInterfaceOrientation :). – JohnK

3

Применить правильное преобразование к представлению и корректировать свои границы кадра

В моем приложении я сделал это так (очень вероятно, не самый лучший):

[UIView beginAnimations:@"View Flip" context:nil]; 
[UIView setAnimationDuration: 0.5f]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 

self.view.transform = CGAffineTransformIdentity; 
self.view.transform = CGAffineTransformMakeRotation(-M_PI/2); 
self.view.bounds = CGRectMake(0.0f, 0.0f, 480.0f, 320.0f); 

self.view.center = CGPointMake(160.0f, 240.0f); 
[UIView commitAnimations]; 
+0

NB: это было правильно, но больше не нужно (Apple изменила способ работы API, чтобы это происходило автоматически). – Adam

4

Вы должны реализовать shouldAutorotateToInterfaceOrientation метод в контроллере, как это

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    return YES; 
} 
Смежные вопросы