Автоповорот iOS6

Возможный дубликат:
Как сделать так, чтобы приложение полностью корректно работало для автоповорота в iOS 6?

проблема с автоповоротом в iOS6. Я добавил это в App Delegate:

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    return (UIInterfaceOrientationMaskAll);
}

И добавил это в View Controller:

- (BOOL)shouldAutorotate
{
    return YES;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return (UIInterfaceOrientationMaskPortrait);
}

Я все еще не могу заставить его быть просто портретным, а не пейзажным! Помощь очень ценится.


person rjg    schedule 05.01.2013    source источник
comment
Я разместил ответ Райан ...   -  person iProgrammed    schedule 05.01.2013
comment
Аналогично, но у меня есть больше кода, и сейчас действительно больше.   -  person rjg    schedule 05.01.2013


Ответы (2)


Вам не нужно устанавливать ориентацию интерфейса в объекте App Delegate. Выберите в Project Navigator файл вашего проекта. Затем выберите Target и выберите Summery. Здесь вы можете выбрать поддерживаемые ориентации интерфейса. Это работает для всего проекта.

person Areal-17    schedule 05.01.2013
comment
Мне нужно, чтобы он был разным в разных представлениях. - person rjg; 05.01.2013
comment
@RyanGittings, это анти-шаблон, который не рекомендуется использовать в iOS 6. - person Dave DeLong; 05.01.2013
comment
Что ж, большая часть приложения - это данные, и у меня есть представление, и я загружаю изображение (FGallery), и я хочу включить альбомную ориентацию, чтобы иметь возможность просматривать фотографии в альбомной ориентации... - person rjg; 05.01.2013
comment
вы не можете вернуть UIInterfaceOrientationMaskAll, потому что это значение по умолчанию для iPad. По умолчанию для iPhone используется UIInterfaceOrientationMaskAllButUpsideDown. Какое устройство вы поддерживаете? Айпад или Айфон? - person Areal-17; 05.01.2013
comment
Это приложение для iPhone... Удалено из делегата приложения. Что мне нужно поместить в ViewController? Я снял все поддерживаемые ориентации интерфейса в целях... - person rjg; 05.01.2013
comment
в объекте viewController, который вы хотите поддерживать автоматическую ориентацию интерфейса, перезапишите - (BOOL)shouldAutorotate и верните yes. Если вы хотите указать ориентацию (например: только landscapeLeft), перезапишите метод - (NSUInteger)supportedInterfaceOrientations. (например: - (NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskLandscapeLeft; } ) - person Areal-17; 05.01.2013
comment
Я попробую это в ближайшее время. Спасибо - person rjg; 05.01.2013
comment
Все еще не работает, я не знаю, что я делаю неправильно. Добавил это в нижнюю часть View Controller: -(BOOL)shouldAutorotate { return YES; } -(NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskPortrait; } и все еще не повезло, все еще вращается в симуляторе. - person rjg; 05.01.2013

Вставьте это только в ViewController:

- (NSUInteger)supportedInterfaceOrientations
{
     return (UIInterfaceOrientationMaskPortrait);
}

Удалите shouldAutorotate и application:supportedInterfaceOrientationsForWindow:.

person Tomasz Szulc    schedule 05.01.2013
comment
Сделал так, не работает. Выбрать ли что-нибудь в целях настроек приложения, поддерживаемых кнопок ориентации интерфейса? - person rjg; 05.01.2013
comment
Да, вы должны выбрать ориентацию, которую вы хотите иметь в своем приложении. - person Tomasz Szulc; 05.01.2013