2014-09-29 3 views
0

Я попытался следующим код моего landscpae приложения Ipad и он работает отлично ... но знает, в xcode6 оказывается неправильно (см экрана печати)ландшафтный режим является неправильным в прошивке 8 - Xcode 6

[UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeRight; 

    self.window.rootViewController = self.loginRegisterView; 
    CGAffineTransform rotate = CGAffineTransformMakeRotation(1.57079633); 
    [self.window setTransform:rotate]; 

    CGRect contentRect = CGRectMake(0, 0, 1024, 768); 
    self.window.bounds = contentRect; 
    [self.window makeKeyAndVisible]; 

и когда я запускаю появляется приложение: https://imageshack.com/i/kqo1EBgAp

EDIT:

Теперь, я не повернуть окно вручную ... только в вкладке General, как экран печати

https://imageshack.com/i/idzqoTZQp

А вот XIb файлу

https://imageshack.com/i/ipB1cOpGp

и вот как он появляется на устройстве

https://imageshack.com/i/eyioC4PCp

+0

Вы хотите, чтобы ваше приложение было только ландшафтом? Если это так, проще всего выбрать ориентацию ландшафта только на целевой панели конфигурации (вкладка «Общие») вместо ручного вращения. – Bek

+0

Я сделал это .. проблема заключается в том, что приложение появляется в ландшафтном режиме, но представление похоже на экран печати. ​​ – Ladessa

+0

Попробуйте не запускать его в модифицируемом iPad-симуляторе, выберите фактическое устройство (iPad 2, iPad Air и т. Д.). Также попробуйте запуская его на самом устройстве. –

ответ

0

Я добавил следующий код в viewDidLoad

- (void)viewDidLoad 
{ 
    CGAffineTransform rotate = CGAffineTransformMakeRotation(M_PI/2); 
    [self.view setTransform:rotate]; 
    [self.view setFrame:CGRectMake(0, 0, 768, 1024)]; 
    [super viewDidLoad]; 
     // Do any additional setup after loading the view. 
} 

EDIT:

Если добавить в

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions it works for all the views 


    CGAffineTransform rotate = CGAffineTransformMakeRotation(M_PI/2); 
    [self.window setTransform:rotate]; 
    [self.window setFrame:CGRectMake(0, 0, 768, 1024)]; 
4

Вопрос, кажется, порядок вызовов при настройке окна в делегат своего приложения. Вам необходимо позвонить makeKeyAndVisible, прежде чем назначить rootViewController. Следующие работы:

self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; 
[self.window makeKeyAndVisible]; 
self.window.rootViewController = self.myMainViewController; 

Но если вы измените порядок:

self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; 
self.window.rootViewController = self.myMainViewController; 
[self.window makeKeyAndVisible]; 

Вы получите поведение, которое вы испытываете.