2015-04-14 3 views
1

У меня странная проблема с UIInterfaceOrientation. В моем проекте есть много разных взглядов, некоторые из них должны вращаться в ландшафтном режиме, а некоторые из них не должны. Проблема в том, что все представления, которые не были созданы с помощью Storyboard, и в которых включен только портрет UIInterfaceOrientation, это работает отлично, и представление не вращается, вместо этого все представления, созданные с помощью раскадровки, даже если ландшафтный режим UIInterfaceOrientation отключен, держите вращение. В моей Xcode настройки этих проверок проект включены, и я не могу изменить их:Storyboard игнорирует настройки UIInterfaceOrientation

enter image description here

Как можно полностью отключить вращение устройства во всех различных взглядах? [Раскадровка или нет].

Это код, я использую, чтобы отключить ориентацию устройства во все раскадровке контроллера представления, но он не работает:

- (BOOL)shouldAutorotate { 
    return NO; 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 

ответ

1

Решение было назначить UINavigationController класс к UINavigationController в раскадровки файле и поместить этот код в его .m файл:

- (BOOL)shouldAutorotate { 
    return NO; 
} 

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { 
    return UIInterfaceOrientationPortrait; 
} 

- (NSUInteger)supportedInterfaceOrientations { 
    return UIInterfaceOrientationMaskPortrait; 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { 
    return UIInterfaceOrientationIsPortrait(toInterfaceOrientation); 
} 
1

Попробуйте этот код может быть, это будет работать для вас.

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientationMask)interfaceOrientation { 
    return (interfaceOrientation == UIInterfaceOrientationMaskPortrait); 
} 
+0

Спасибо за ваш ответ @Avineet, но это Безразлично 't work: -/ – Aluminum

0

Пожалуйста, проверьте, есть ли в вашем проекте .plist несколько позиций для ориентации или что-то странное. Я иногда обнаружил, что ориентация имеет разные значения в plist или дублированных ключах. Надеюсь, что это помогает

+0

Спасибо @Bisca, но я проверил файл Info.plist, и у меня есть только 3 элемента для поддерживаемых ориентаций интерфейса, поэтому я предполагаю, что это правильно: - / – Aluminum

Смежные вопросы